GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo evitar que el sistema deje de responder cuando se golpea (fuera de Ram)?

Tengo 8 GB de RAM, pero a veces ejecuto un par de máquinas virtuales y suficientes procesos de Chrome para usar la mayor parte de mi memoria. Por lo general, eso está bien, pero a veces mi sistema comienza a fallar y es difícil para mí recuperarme sin esperar a que las cosas mejoren, ya que la interfaz de usuario está casi congelada.

En todos estos casos, los programas que usan la mayor parte de mi RAM podrían perder prioridad. Si Chrome o la VM dejaban de responder, pero mi entorno gráfico y mi terminal seguían respondiendo, podía cambiar a una terminal, encontrar al culpable y eliminarlo. Podría imaginar algo como un "agradable" para la memoria (para que yo pudiera mejorar Chrome y mi VM) o algo para obligar al entorno gráfico y a mi terminal a permanecer en la memoria y no intercambiar.

¿Hay alguna manera de garantizar que la interfaz de usuario siga respondiendo cuando mi sistema está fallando?

¡Gracias!

EDITAR:Todavía estoy interesado en saber si hay algo bueno para la memoria, pero acabo de descubrir que mi sistema no tiene ningún espacio de intercambio. Creo que esto sucedió porque comencé a usar un hogar encriptado y un intercambio encriptado (vea El intercambio no funciona en una instalación limpia 14.04 usando un hogar encriptado). Por lo tanto, es probable que mi sistema deje de responder porque no tengo espacio de intercambio, por lo que mi sistema no puede intercambiar programas innecesarios cuando se queda sin memoria.

Respuesta aceptada:

Acabo de descubrir que mi sistema no tiene ningún espacio de intercambio

Si esto es cierto, probablemente esté contribuyendo al problema.

Al usar múltiples máquinas virtuales con grandes asignaciones de memoria, una cantidad de RAM que normalmente sería más que suficiente para un uso normal (8 GB) comienza a ser escasa, lo que significa que su sistema no podrá usar tanto caché y querrá intercambiar . Ahora, si no tiene intercambio, habrá aún más presión sobre la memoria y es posible que incluso se eliminen las tareas debido a que se queda sin memoria.

Swap intenta mejorar la estabilidad y el rendimiento general en situaciones como la que ha descrito, reasignando algunos datos asignados pero que rara vez se usan en la memoria al disco, liberando memoria para los datos que está usando. Agregar intercambio, si de hecho no tiene ninguno, ayudará. Sin embargo, en términos de rendimiento, mejorará mucho más si también compra más RAM o usa menos.

En un sistema en el que ejecuta máquinas virtuales pero también al usar un escritorio normal en el host de VM, no desea que sus VM ocupen toda su RAM, de hecho, guardaría la mitad de su RAM (hasta 4 GB) para el host, dado que está ejecutando software en el host y quiero que responda.

Tenga en cuenta también que las máquinas virtuales tienen ineficiencias inherentes no solo porque su RAM está totalmente separada, no comparten ningún caché o búfer, sino que ejecutan un sistema operativo completamente separado bajo una serie de capas de abstracción. Por lo tanto, siempre puede obtener una mayor eficiencia si decide ejecutar algo en el host en lugar de en una VM, aunque si su propósito para usar VM es usar otros sistemas operativos, esto no será posible.

¿Hay alguna manera de garantizar que la interfaz de usuario siga respondiendo cuando mi sistema está fallando?

Cuando la cantidad de RAM que tiene es un problema, cualquier cosa que pueda hacer es solo un truco:la solución real es comprar más RAM (aunque en su caso, como mencioné, es posible que pueda asignar menos a las máquinas virtuales).

Relacionado:¿No queda espacio en el dispositivo aunque lo haya?

Su pregunta se expresa en términos simples:desea que la interfaz de usuario pueda continuar funcionando sin problemas incluso si IO está congestionado. Sin embargo, es complicado de responder. Su sistema ya estará haciendo esto lo mejor que pueda:las operaciones que no requieren acceso al disco no se retrasarán. Si su "UI tartamudea" es porque el proceso particular responsable de esa UI necesita acceso al disco. En una situación de poca memoria y cuando el disco se agita, incluso algo que normalmente sería trivial, como leer alguna configuración de su directorio de inicio para averiguar cuáles son sus preferencias de visualización, puede ser lento debido al agotamiento del caché del disco.

Podría imaginar algo así como un "agradable" para la memoria (para que yo pudiera agradable Chrome y mi VM)

No hay realmente un "agradable para la memoria". El acceso a la memoria es tan rápido que por lo general prácticamente puedes ignorarlo. Cuando tienes problemas, no es la memoria, es el disco, ese es el problema. Hay un "ionice" debido a esto. Aunque probablemente eso no sea lo que recomendaría para su problema.

Otro equivalente aproximado de "agradable para la memoria" es el intercambio:no puede controlar qué tan intercambiable es cada proceso individualmente, pero el sistema hace un trabajo bastante bueno al determinar qué procesos está utilizando activamente y, por lo tanto, son una prioridad más alta para mantener RAM.

Pero como dije y como es una regla de oro, si te estás quedando sin RAM, entonces comprar más RAM es la solución con menos dolores de cabeza e inconvenientes.


Ubuntu
  1. Debian:¿cómo podemos predecir cuándo saldrá la próxima versión de Debian?

  2. Linux:¿el sistema se cuelga cuando se queda sin memoria?

  3. ¿Cómo evitar que `ls` ordene la salida?

  4. ¿Cómo solucionar el problema "no se puede calcular la actualización" al actualizar de 12.04 a 12.10?

  5. Cómo liberar páginas enormes de la aplicación bloqueada

Cómo evitar que se agote el tiempo de espera de SSH

Cómo verificar la RAM instalada en Debian 10

Cómo verificar la RAM instalada en su sistema Ubuntu

Cómo instalar cafeína en Ubuntu 20.04:evitar que el escritorio quede inactivo

Cómo evitar que PHP-FPM consuma demasiada RAM en Linux

¿Cómo evitar que las pantallas se apaguen cuando la pantalla está bloqueada?