¿Cómo evitar que mi sistema deje de responder cuando se agita (sin RAM)?


11

Tengo 8 GB de RAM, pero a veces estoy ejecutando 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 agitarse y me cuesta recuperarme sin esperar a que las cosas mejoren, ya que la IU está congelada.

En todos estos casos, los programas que usan la mayor parte de mi RAM podrían estar desubicados. Si Chrome o la máquina virtual no respondieran pero mi entorno gráfico y mi terminal aún respondían, podría cambiarme a un terminal, encontrar al culpable y matarlo. Podría imaginar algo así como un "agradable" para la memoria (para poder usar Chrome y mi VM) o algo para forzar el entorno gráfico y mi terminal a permanecer en la memoria y no intercambiarse.

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

¡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 (consulte El intercambio no funciona en la instalación limpia 14.04 usando el hogar encriptado ). Por lo tanto, mi sistema probablemente no responda porque no tengo espacio de intercambio, por lo que mi sistema no puede intercambiar programas innecesarios cuando queda poca memoria.


Parece que encontró la causa de su problema (sin intercambio asignado): ¿ahora desea saber cómo configurar el intercambio cifrado? Tal vez podría editar la pregunta o comenzar una nueva pregunta.
thomasrutter

1
Todavía estoy interesado en un estilo de RAM agradable, ya que he tenido problemas similares al descrito en mi pregunta antes, incluso cuando tenía un archivo de intercambio.
Sam King

Respuestas:


2

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

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

Al usar varias máquinas virtuales con grandes asignaciones de memoria, una cantidad de RAM que normalmente sería más que suficiente para el uso normal (8 GB) comienza a ajustarse, lo que significa que su sistema no podrá usar tanta caché y querrá intercambiar . Ahora, si no tiene un intercambio, habrá aún más presión sobre la memoria e incluso puede perder las tareas debido a la falta de memoria.

Swap intenta mejorar la estabilidad general y el rendimiento en situaciones como la que ha descrito, reasignando algunos datos asignados pero poco utilizados en la memoria al disco, liberando memoria para los datos que está utilizando. 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 se está ejecutando máquinas virtuales, sino que está también el uso de un escritorio normal en el host VM, que no quieren que sus máquinas virtuales para ocupar todo su memoria RAM, de hecho me gustaría guardar la mitad de la memoria RAM (hasta 4 GB ) para el host, dado que está ejecutando software en el host y desea 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 ninguna memoria caché o búferes, sino que están ejecutando 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 utilizar otros sistemas operativos, esto no será posible.

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

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).

Su pregunta se expresa en términos simples: desea que la IU pueda continuar funcionando sin problemas incluso si IO está congestionado. Sin embargo, es complicado responder. Su sistema ya lo hará lo mejor que pueda: las operaciones que no requieren acceso al disco no se retrasarán. Si su "interfaz de usuario está tartamudeando" es porque el proceso particular responsable de esa interfaz de usuario necesita acceso al disco. En una situación de poca memoria y donde el disco se agita, incluso algo que normalmente será 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 de la caché del disco.

Podría imaginar algo así como un "buen" para la memoria (para poder usar Chrome y mi VM)

Realmente no hay un "agradable para la memoria". El acceso a la memoria es tan rápido que generalmente puede ignorarlo prácticamente. Cuando tienes una paliza, no es memoria, es 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 se puede controlar qué tan individualmente es cada proceso, pero el sistema hace un trabajo bastante bueno al determinar qué procesos está utilizando activamente y, por lo tanto, es una prioridad más alta mantenerse en 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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.