15 votos

aumento de escritorio la capacidad de respuesta en linux, mientras que el intercambio de

Todas las distribuciones de GNU/Linux que he probado hasta ahora tengo el problema que cuando la ram se llena y el sistema empieza a intercambiar, todo el escritorio y la interfaz gráfica de usuario no responde como el infierno a un punto de que a veces tengo que esperar unos 5-10 segundos después de haber movido la física del ratón hasta que el puntero del ratón se mueve realmente.

Esta especie es de un mal comportamiento, especialmente en sistemas con poca memoria ram.

Es allí cualquier manera de dar algunas aplicaciones/puestos de trabajo, como el entorno de escritorio, etc., una mayor prioridad para permanecer en la memoria ram de otras aplicaciones, por lo que realmente la aplicación acaparando toda la memoria que se presenta intercambiado antes de que el entorno de escritorio, etc.?

EDITAR: Estoy hablando del caso cuando la totalidad de la memoria RAM se utiliza, por lo que se iniciará siempre de intercambio si no está desactivada (no quiero procesos a ser asesinados de forma aleatoria). He tenido este problema, no sólo en poca memoria ram entornos, sino también con 8GiB de ram en mi máquina de escritorio, en parte debido a que muchos de VMs en parte debido a la pérdida de memoria. ZRAM no es una solución, ya sea como es retrasar el problema. La única solución que puedo pensar para este problema es algo de espacio de usuario de la utilidad o del núcleo de la API que permite a prevenir ciertos puestos de trabajo para ser intercambiado en todos o al menos hacer que sea muy poco probable. ¿Alguien sabe otra solución o sabe algo acerca de una herramienta o de la API en existencia o que están siendo planeadas?

2ª EDICIÓN: ulatencyd parece que no funciona con las versiones más recientes de systemd, de acuerdo a https://aur.archlinux.org/packages/ulatencyd-git/ y https://wiki.archlinux.org/index.php/Ulatencyd . Esto puede ser debido a systemd asumió el pleno control de cgroups desde una perspectiva del espacio de usuario si he entendido correctamente.

1voto

terdon Puntos 29629

Que yo sepa esto no es un problema específico de Linux, es la forma en que el espacio de INTERCAMBIO (o memoria virtual). Si OS necesita para buscar datos en la unidad de disco duro en contraposición a la memoria RAM, será más lento. Nada que usted puede hacer acerca de eso, el acceso al disco es más lento que el acceso a la RAM.

Usted no será capaz de establecer la prioridad con la que los procesos se intercambian, que es determinado por el núcleo, que tratará de maximizar la eficiencia, usted no será capaz de hacerlo mejor. Lo que usted puede hacer es establecer la prioridad de la CPU de un proceso, y que podría ser de ayuda. Su sistema está siendo reducido por el tiempo que se tarda en leer desde/hasta el SWAP, esto significa que la CPU va a tener que esperar por los datos pertinentes para ser recuperado por el proceso de solicitar antes de poder continuar. Si tu DE tener una mayor prioridad para la CPU de acceso, que debe empujar a sus operaciones en la parte superior y a acelerar las cosas un poco.

Así, la prioridad de la CPU se establece con el nice y renice comandos:

 Renice alters the scheduling priority of one or more running processes.
 The following who parameters are interpreted as process ID's, process
 group ID's, or user names.  Renice'ing a process group causes all pro‐
 cesses in the process group to have their scheduling priority altered.
 Renice'ing a user causes all processes owned by the user to have their
 scheduling priority altered.  By default, the processes to be affected
 are specified by their process ID's.

Las prioridades van desde -20 (prioridad más alta) a 20 (prioridad más baja). Para cambiar la prioridad de un proceso en ejecución, se podría hacer:

renice -15 $PID

donde $PID es el PID del proceso, cuya prioridad desea aumentar. Usted puede utilizar pgrep a averiguar que es. Por ejemplo:

renice -15 $(pgrep gnome-session)

La otra opción sería establecer el sistema de 'el swappiness' que determina cuando se va a iniciar el intercambio. Un el swappiness valor de 1 significa que sólo swap para evitar errores de falta de memoria. Los valores más altos significa que iniciará el intercambio, incluso cuando todavía hay memoria física disponible. Usted puede establecer en un valor relativamente bajo para hacer que su sistema de intercambio como poco como sea posible. Añadir esta línea a /etc/sysctl.conf:

vm.swappiness=1

CUIDADO: Que no es una buena idea si usted no tiene una gran cantidad de memoria RAM, swap es una Buena Cosa, por lo general, usted tendrá que jugar con los valores un poco para encontrar el equilibrio adecuado para su sistema.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: