Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

sábado, 30 de enero de 2016

Preload: Qué es y para qué sirve

En esta ocasión quiero hablaros de uno de los recursos más útiles y usados en el mundo de Linux para mejorar el rendimiento del sistema operativo en general, esta utilidad requiere que pase algo de tiempo para que nosotros notemos alguna diferencia; se trata de la utilidad preload, un paquete de software que monitoriza nuestro sistema y determina qué aplicaciones son las que más usamos, haciendo que éstas se pre-carguen en la memoria RAM para poder usarlas con mayor rapidez. Obviamente el determinar qué es lo más usado requiere que la aplicación lleve instalada un tiempo, con lo que hasta pasados unos días no notaremos ninguna diferencia en el equipo. Esta aplicación es especialmente útil en entornos de escritorio, si bien puede ser perfectamente usada en servidores.

velocimetro

Esta aplicación es un demonio, es decir una aplicación que corre en segundo plano, así que una vez instalada no tendremos que preocuparnos por ella a menos que queramos aplicarle alguna configuración personalizada. Dicho así todo suena fantástico, si bien la preload no está instalado en el sistema... Afortunadamente, la gran mayoría de los repositorios actuales lo incluyen por defecto, así que únicamente tendremos que hacer la instalación desde éstos para tenerlo disponible, lo cual es tan sencillo como escribir en la terminal:

En Debian
apt-get install preload
En Red Hat
yum install preload

En un principio así tendríamos el demonio instalado y operativo, consiguiendo que las aplicaciones más usadas estén pre-cargadas en la RAM. ¿Qué logramos con esto? Qué cuando arranquemos el ordenador, ya tengamos algunos bytes de la memoria RAM cargados en la caché con la información necesaria para cargar dicha aplicación, reduciendo los tiempos de carga en hasta un 50%, pues no tiene que realizar operación alguna para cargar dichos recursos; dicho ahorro en esas tareas conlleva en un gran ahorro de tiempo, cosa especialmente notoria con ciertas aplicaciones "pesadas" tales como libreoffice, que cargan prácticamente al instante gracias a preload. Obviamente existen más aplicaciones en las que se notaría la diferencia; he aquí una pequeña gráfica con algunas comparaciones de antes y después de algunos programas:


Si bien la configuración por defecto de este software es lo suficientemente efectiva como para servirnos en la gran mayoría de los casos, a veces necesitamos un funcionamiento más personalizado; ya sea por que queremos excluir ciertas parte del sistema de dicha monitorización o por que queremos que preload use un máximo de memoria RAM menor al determinado (esto se realiza para evitar que preload use demasiada RAM ). Para personalizar el comportamiento de este demonio, tendremos que recurrir al fichero de configuración /etc/preload.conf.

Este fichero tiene múltiples parámetros configurables que pueden ayudarnos a monitorizar el sistema a nuestro gusto o a ocultar ciertos elementos de dicho "ojo". Los parámetros más importantes serían:

  • cycle: Probablemente el parámetro más importante de todos, especifica cada cuantos segundos hace una revisión del sistema. Pasados esos segundos analiza las aplicaciones que están en marcha y evalua si la información cargada en la caché es la adecuada; tras dicho análisis también evalúa qué información es conveniente tener precargada en la caché. El valor por defecto es 20 (el valor establecido estaría en segundos) y los propios desarrolladores advierten que no es recomendable poner un valor demasiado bajo, ya que estaríamos forzando al sistema a hacer revisiones constantes cada muy poco tiempo y podría sobrecargar el sistema operativo con tantos "ciclos" tan seguidos. Una pequeña curiosidad de este parámetro es que siempre tiene que tener asignado un número par.
  • minsize: Este valor es muy importante también, pues establece el tamaño MÍNIMO que debe de tener un proceso en ejecución. A cuanto más pequeño sea el valor, mayor será el número de procesos que monitorizará (ya que el requisito para que el proceso sea monitorizado será mucho más laxo). El parámetro está establecido en bytes y por defecto tiene un valor de 2000000.
  • autosave: Este parámetro es el encargado de guardar el estado de preload (por si este fuese detenido por cualquier motivo). Al igual que cycle, es recomendable no poner un valor excesivamente bajo, ya que estaríamos haciendo trabajar al equipo con demasiada intensidad. El valor por defecto es de 3600 segundos; es decir de una hora.
  • memtotal,memfree y memcached: Aunque son tres parámetros distintos, su correlación hace que sea más útil explicarlos en conjunto que por separado. La combinación de estos tres valores tienen como objetivo evitar que el equipo consuma demasiada ram; es decir evitar que cachee demasiada memoria y deje el equipo sin memoria para hacer el resto de tareas. Los valores usados son desde -100 a 100 y los valores usados por defecto son: -10, 50 y 0 respectivamente. Esto puede sonarnos raro pero significaría lo siguiente: Usa como máximo el 50% de la memoria ram libre menos un 10% de la memoria total (de ahí el -10) más un 0% de la memoria caché en uso. Estos valores por defecto son de por sí lo suficientemente eficientes para evitar que nos quedemos sin memoria, aunque siempre se puede querer ajustar un poco más.
  • mapprefix: Los directorios especificados en este parámetro serán excluidos de la monitorización de preload, cosa útil cuando queremos que el contenido de la carpeta en cuestión no se pre-cargue en la memoria RAM. En caso de querer especificar más de un directorio, habría que separarlos mediante el caracter ;.
  • exeprefix: Cumple la misma función que mapprefix, con la diferencia de que en este caso se especificarían binarios y no directorios.

Como podéis ver el archivo de configuración es relativamente sencillo de entender y aunque como bien he dicho no es necesario realizar configuración alguna en este para poder disfrutar de esta magnifica utilidad, siempre viene bien conocer lo que la utilidad nos ofrece con el fin de poder personalizarla a nuestro gusto en el futuro.  

Espero que os haya resultado útil.

Saludos.

3 comentarios :