Aprovechamiento máximo de memoria de la máquina.

Publicado el 03 noviembre 2012 por Ferlanero @ferlanero
Saludos.

Sólo por curiosidad... ¿alguno sabe de verdad cuándo empieza vuestro ordenador a descargar cosas en la swap y -automáticamente- a reducir su velocidad?Por cuestiones de trabajo me he encontrado con el tema y me he dado cuenta de que, en la mayoría de sistemas en el momento en que la memoria llega al sesenta por ciento de su capacidad, independientemente del tamaño de ésta.Igualmente, hasta que la memoria no está completa no se empieza a eliminar lo que no se necesita.Seguro que todos tenemos maquinones Cray y cosas parecidas, pero como he de lidiar con algunas que no... Os ofrezco una forma de ajustar el sistema sin daños y comprobada en todas las máquinas de mi centro.

  • Accedemos como root.
  • Editamos el fichero /etc/sysctl.conf
  • Añadimos al final las siguientes líneas:
vm.swappiness=1

vm.drop_caches=3 
  • Guardamos la modificación.
  • Ejecutamos directamente:
sysctl -p

En las dos últimas líneas nos han de aparecer los campos que hemos introducido antes.Con ésto hemos programado el sistema para que no utilice la swap a menos que la memoria esté ocupada en un noventa por ciento -aumento sensible de velocidad- y para que vacíe todo el espacio ocupado por un programa así que lo cerramos, sin esperar, con la subsiguiente descarga del equipo.A ésto podemos añadirle otra modificación. El lugar donde ha de instalarse depende del sistema pero lo he probado en el trabajo (OpenSUSE modificada) y el mi máquina (Ubuntu) y funciona sin problemas. El proceso es sencillo.

  • Como seguimos en la consola, editamos el /etc/crontab.
  • añadimos al final:
00 * * * * root echo 3 > /proc/sys/vm/drop_caches
15 * * * * root echo 3 > /proc/sys/vm/drop_caches
30 * * * * root echo 3 > /proc/sys/vm/drop_caches
45 * * * * root echo 3 > /proc/sys/vm/drop_caches

  • Guardamos.
  • Creamos un fichero (con el mismo editor en que estamos) en /etc/cron.d al cual llamamos, por ejemplo, dropcaches, (sí, lo sé; poco original).
  • Insertamos el mismo código anterior.
  • Guardamos.
Et voilà. Cada quince minutos el sistema hará un barrido por la memoria y eliminará lo que no sea necesario sin dañar ningún proceso. Ponerlo en los dos sitios es porque no sé en cada sistema dónde lo reconocerá, y así me aseguro la jugada. Los tiempos, evidentemente son optativos y ésta es la fórmula que me va bien a mí.
Espero que os sirva para algo. Hasta luego.

También podría interesarte :

Quizás te interesen los siguientes artículos :