Todas las distribuciones de GNU / Linux que probé hasta ahora tienen el problema de que cada vez que se llena el ram y el sistema comienza a intercambiarse, todo el escritorio y la interfaz gráfica de usuario dejan de responder hasta el punto de que a veces tengo que esperar unos 5-10 segundos después haber movido el mouse físico hasta que el puntero del mouse se esté moviendo realmente.
Este es un comportamiento molesto, especialmente en sistemas con poca RAM.
¿Hay alguna forma de otorgar a algunas aplicaciones / trabajos, como el entorno de escritorio, etc., una prioridad más alta para permanecer en la memoria RAM que otras aplicaciones, de modo que la aplicación que acapare toda la memoria se intercambie antes que el entorno de escritorio, etc.?
EDITAR: estoy hablando del caso cuando se usa toda la RAM, por lo que siempre comenzará a intercambiarse si no está deshabilitada (no quiero que los procesos se eliminen al azar). Tuve este problema no solo en entornos con poca memoria RAM, sino también con 8GiB de memoria ram en mi máquina de escritorio, en parte debido a muchas máquinas virtuales, en parte debido a la pérdida de memoria. ZRAM tampoco es una solución, ya que solo retrasa el problema. La única solución que se me ocurre para este problema es alguna utilidad de espacio de usuario o API de kernel que permite evitar que se intercambien ciertos trabajos o, al menos, que sea muy poco probable. ¿Alguien conoce otra solución o sabe algo acerca de una herramienta o API que existe o está siendo planificada?
2nd EDIT: ulatencyd no parece funcionar con versiones más recientes de systemd, de acuerdo con https://aur.archlinux.org/packages/ulatencyd-git/ y https://wiki.archlinux.org/index.php/Ulatencyd . Esto puede deberse a que systemd asumió el control total de cgroups desde la perspectiva del espacio de usuario si lo entiendo correctamente.
cgroup_enable=memory swapaccount=1
en la línea de comando del kernel; tenga en cuenta que esto tiene un costo de rendimiento menor). Ejemplo de implementación: ulatencyd .