Cuando abro una aplicación con uso intensivo de RAM (VirtualBox configurado en 2 GB de RAM), generalmente se usa algo de espacio de intercambio, dependiendo de qué más haya abierto en ese momento.
Sin embargo, cuando salgo de esa última aplicación, se liberan los 2 GB de RAM, pero se mantiene el mismo uso de espacio de intercambio.
Por ejemplo, en este momento, aproximadamente dos horas después de haber cerrado VirtualBox, tengo 1.6 GB de RAM libre y todavía 770 MB de intercambio.
¿Cómo puedo decirle a Ubuntu que deje de usar ese intercambio y que vuelva a usar la RAM?
performance
swap
ram-usage
jfoucher
fuente
fuente
Respuestas:
El hecho de que el intercambio esté asignado no significa que se esté 'utilizando'. Si bien programas como el monitor del sistema y la parte superior mostrarán parte de su espacio de intercambio asignado (en su ejemplo, 770 MB), eso no significa que el sistema esté intercambiando activamente dentro / fuera.
Para saber si algo está cambiando de entrada / salida, puede usar el
vmstat
comando. Déjelo funcionando unos segundos para que sesi
calme yso
mire las columnas (intercambiar) y (intercambiar). Si no sucede nada, entonces no hay razón para preocuparse.Aquí está el resultado de la ejecución
vmstat 1
, donde puede ver que mi máquina no se intercambia en absoluto.Sin embargo, aquí
top
puedes ver que tengo espacio de intercambio asignado: -fuente
El kernel de Linux subyacente a Ubuntu "intercambiará" automáticamente esas páginas del disco a la RAM según sea necesario, por lo que en general diría que simplemente suceda de forma natural.
Sin embargo, si realmente siente que necesita forzarlo, (puedo ver un escenario en el que desearía saber que el sistema responderá más tarde) puede deshabilitar y volver a habilitar momentáneamente el intercambio
O alternativamente como una sola línea
Tenga cuidado al hacer esto, ya que puede hacer que su sistema sea inestable, especialmente si ya tiene poca RAM.
fuente
También puede establecer su valor de "intercambio" desde el valor predeterminado de 60, de esta manera el intercambio no crecerá tanto para empezar. Por qué el valor predeterminado de envío se establece en 60 cuando el valor recomendado es 10 me deja perplejo. Desde Ubuntu SwapFAQ :
Al cambiar este valor a 10 o incluso 0, puede agregar un aumento de velocidad significativo y perceptible a un sistema anterior con un disco lento. Establecer este valor en 0 no desactiva el intercambio para el kernel Linux 3.4 e inferior, pero con 3.5+ lo hace, por lo que querrá usar un valor de 1 si desea mantenerlo en su configuración más baja *.
No veo ninguna razón para no establecer esto en 0 ya que cualquier cosa que golpea el disco es más lenta que la RAM. Tengo 8 núcleos virtuales, un SSD rápido y 8 GB de memoria y mi intercambio está configurado en 0. A partir de este momento tengo 3 máquinas virtuales en funcionamiento, mi uso de memoria es 7.1 de 7.7 GB, mi intercambio usado es solo de 576 KB de ¡952 MB y todos los sistemas funcionan sin problemas!
Desde Ubuntu SwapFAQ :
A continuación se presentan instrucciones básicas para verificar el intercambio, vaciar el intercambio y cambiar el intercambio a 0:
Para verificar el valor de intercambio:
Para establecer temporalmente el intercambio en 0 ( como lo sugiere SpamapS ):
Esto vaciará su intercambio y transferirá todo el intercambio nuevamente a la memoria. Primero asegúrese de tener suficiente memoria disponible al ver la pestaña de recursos de gnome-system-monitor, su memoria libre debe ser mayor que su intercambio utilizado. Este proceso puede llevar un tiempo, use gnome-system-monitor para monitorear y verificar el progreso.
Para establecer el nuevo valor en 0:
Para volver a activar el intercambio:
Para establecer permanentemente el intercambio en 0:
sudoedit /etc/sysctl.conf
vm.swappiness = 0
sudo shutdown -r now
# reiniciar sistema* Con la versión 3.5+ del kernel, el cambio de configuración a 0 lo desactiva por completo y se recomienda una configuración de 1 si desea el algoritmo de intercambio más bajo. fuente: https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/
fuente
Descubrí que el intercambio de vaciado puede ayudar mucho en sistemas con discos lentos y RAM limitada. Por supuesto, como ya se mencionó, la forma de hacerlo es correr
sudo swapoff -a; sudo swapon -a
. El problema aquí es que si no hay suficiente RAM, hacerlo causará todo tipo de problemas.He escrito un guión que llamo
toggle_swap
que me ha funcionado durante los últimos años. Comprueba si hay suficiente RAM libre antes de desactivar el intercambio. Aquí está:fuente
Después de jugar un poco con el intercambio durante un par de días, he llegado a la conclusión de que el núcleo debe dejarse en sus propios dispositivos. Sabe lo que está haciendo y está optimizado para brindarle la mejor experiencia.
A menos que tenga una buena razón para querer recuperar ese disco, lo dejaría en paz.
fuente
No afecta el rendimiento si su espacio de intercambio está ocupado. La única penalización de rendimiento es que las cosas entran / salen del intercambio. Si no se intercambia / intercambia nada, entonces no tiene que preocuparse por nada.
fuente