Cómo configurar algunos parámetros de la memoria en GNU/Linux con kernel 2.6
1. Introducción
A algunas personas les ha ocurrido que cuando tienen su sistema recién instalado con el kernel 2.6.x después de un tiempo de uso se dan cuenta que el sistema tiene asignado a buffers y caché casi toda la memoria RAM de la que dispone la máquina, y obviamente quieren tener el control de esto y que no lo maneje tan automáticamente el kernel.
Esto se nota principalmente en sistemas con montones de ram y mucha actividad de I/O.
Esto es normal en Linux con el kernel 2.6, y el sistema lo hace así para garantizar un buen desempeño y el kernel dinámicamente reasigna esta memoria a los procesos y programas que la requieran; pero en ocasiones podriamos no querer esta configuración por defecto y garantizar, que el sistema mantenga un buen porcentaje de memoria ram libre o que libere más rápidamente estos buffers y cachés del sistema de la memoria RAM.
2. Aspectos Técnicos
Los 2 parámetros que se necesitan modificar para esto son: swappiness y min_free_kbytes.
- swappiness hace referencia a que tanto tiende el sistema a hacer uso del area de swap o intercambio en el sistema, y su valor por defecto es 60.
- min_free_kbytes controla cuanta ram libre debe dejar el sistema para otras cosas que no son propias de el como caché y buffers., el valor por defecto puede variar de una distro a otra pero por lo general está entre los 4.5 a 6 MB
3. Procedimiento
Bien, ahora lo interesante:
Los archivos que controlan este comportamiento del kernel se encuentran en /proc/sys y como ya hemos dicho se llaman swappiness y min_free_kbytes.
Para modificar en vivo su valor se utiliza sysctl -w vm.min_free_kbytes=xxxx (donde xxxx es la cantidad en kbytes que queremos que el kernel deje libre.) y sysctl -w vm.swappiness=xx (donde xx es un valor númerico entre 0 y 100). nota: un valor = 0 hace que el sistema maneje el swap como lo hacia el kernel 2.4.
Para hacer estos cambios que permanentes sólo hay que editar el archivo /etc/sysctl.conf e introducir las lineas con los valores de nuestra preferencia.
vm.swappiness=xx
vm.min_free_kbytes=xxxx
Advertencia
Estos cambios se deben probar con cuidado y no hacer cambios radicales, ya puede suceder un bloqueo de la máquina.
Este manual fue escrito y probado por Fabian Mejía Lemus

