Podrías hacer lo que Nik sugirió y usar swapoff . Sin embargo, hay otra forma más elegante de modificar "swappiness", o cuán agresivamente el kernel intercambia programas en el disco en sistemas que ejecutan los kernel 2.6.
Ha habido acalorados debates sobre las listas de correo del kernel de Linux sobre la política que el kernel debe seguir con respecto al comportamiento de intercambio . El resultado es que ahora tenemos un parche en 2.6 núcleos que nos permite ajustar este comportamiento en gran medida.
Tenga en cuenta que necesita privilegios de root para hacer esto, como lo haría para ejecutar los comandos swapoff / swapon.
El valor actual de "swappiness" se puede inspeccionar en el archivo / proc / sys / vm / swappiness , o ejecutando este comando sysctl :
sudo sysctl vm.swappiness
Los valores de "intercambio" pueden variar de 0 (sin intercambio) a 100 (cambiar al disco tanto como sea posible). Ubuntu se envía con el intercambio predeterminado establecido en 60.
Para cambiar esto para una sesión, llame a sysctl nuevamente y páselo como valor de intercambio para usar:
sudo sysctl vm.swappiness=30
Además de gratis , puedes controlar los efectos de hacerlo a través de las excelentes utilidades htop o iotop .
Si le gusta lo que ve y desea conservar este valor en los reinicios, simplemente coloque "vm.swappiness = 30" en el archivo /etc/sysctl.conf .
$ sudo sysctl vm.swappiness
vm.swappiness = 30
$ sudo sysctl vm.swappiness=40
vm.swappiness = 40
$ sudo sysctl vm.swappiness
vm.swappiness = 40
$ sudo tail /etc/sysctl.conf
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
# The contents of /proc/<pid>/maps and smaps files are only visible to
# readers that are allowed to ptrace() the process
# kernel.maps_protect = 1
vm.swappiness=30
Puede jugar con diferentes valores hasta que encuentre uno que implique un nivel aceptable de intercambio en su máquina.
Recuerde que las cosas en el intercambio se pusieron allí en un momento más ocupado que ahora.
Es posible que los datos también estén en la RAM, ya que se volvieron a cargar para su uso pero no se borraron del intercambio. El núcleo hace esto para ahorrar tiempo en el próximo período ocupado: si los datos ya se copian allí, puede liberar la RAM que está utilizando en lugar de tener que hacer primero las escrituras en disco. Por lo tanto, a menos que sepa que la máquina no necesitará volver a intercambiar en el futuro cercano, forzar la liberación del espacio de intercambio no puede lograr nada, excepto reducir la velocidad un poco más la próxima vez que se necesite el intercambio.
Esto se gestiona sobre una base de borrado en escritura, por lo que si se actualiza la copia en la RAM, se liberarán los bloques en el intercambio.
Si el espacio de intercambio es necesario para otra cosa, que no será en este momento, ya que tiene mucho espacio libre, por supuesto, se liberará para ese uso.
No puede ver cuántos datos hay en este estado (de estar tanto en páginas basadas en disco en áreas de intercambio como en RAM) en la salida de
free
. Sin embargo, puede verlo a través del/proc
sistema de archivos especial. Mira la salida decat /proc/meminfo
para elSwapCached
recuento.Otras dos razones para que haya intercambio en uso cuando aparentemente hay memoria libre son
free
salida que probablemente no sea el caso aquí como usted tener una porción de RAM verdaderamente no asignada, así como la utilizada por el caché / buffers de E / S.fuente
Recuerde que
free
es solo una instantánea del uso de la memoria. El resultado que está viendo puede implicar que, en algún momento en el pasado, el sistema se estaba quedando sin RAM, por lo que se cambió el material residente en RAM. Desde entonces, la RAM se ha liberado, pero no se ha requerido el material en el intercambio, por lo que todavía se mantiene en el intercambio en lugar de solo saturar la RAM. Si ese es el caso, desactivar el intercambio sería una mala idea. ¿Hay algún proceso que pueda exigir una cantidad tan grande de RAM desde la última recarga?Además, es posible que desee verificar que no tiene una restricción en el tamaño máximo de residente establecido a través de ulimit (generalmente en / etc / profile pero tal vez varía con las distribuciones y se puede configurar por proceso (por ejemplo, en un script de inicio) )
Finalmente, en Microsoft Windows hay informes de problemas específicos con Firefox que se cambia al disco, por ejemplo, cuando se minimiza (por ejemplo, http://joeabiraad.com/mozilla-firefox/control-your-firefox-ram-usage/113 ). No he oído hablar de eso en los sistemas GNU / Linux, pero puede valer la pena explorarlo.
fuente