Hoy vengo a hablaros de uno de los problemas más comunes con los que nos podemos encontrar en Linux; especialmente con servidores, si bien si tenemos un equipo constantemente encendido podemos tener el mismo problema. Se trata de la memoria RAM, la cual aunque hoy en día contamos con equipos con grandes cantidades de memoria instalada, no es ilimitada; y es por ello que tenemos que tener en cuenta una de las características más importantes de ésta; la memoria caché o SRAM.
Cada vez que ejecutamos un proceso, éste consumirá cierta cantidad de memoria RAM en nuestro equipo, pero no sólo eso sino que tardará bastante tiempo en cargarse en caso de ser la primera vez que lo ejecutemos, ya que tiene que cargar todos los recursos y consultar todos los datos necesarios para arrancar... Durante dicho proceso, cierta información es guardada en la caché para que así, en caso de que queramos ejecutar dicho proceso de nuevo, la carga sea mucho más rápida, ya que ya hay mucha información disponible en la memoria caché; traduciéndose en un sistema más optimizado y eficiente. Supuestamente dicha caché está diseñada para borrar parte de la información almacenada en ésta en caso de encontrase llena; pero a veces no realiza dicha función correctamente y nos podemos encontrar con sistemas de 4, 8 e incluso 16 GB en los cuales el 90% de la RAM está en uso y de dicha RAM la mayor parte sea información almacenada en la caché.
Es por ello que en equipos que están siempre conectados (generalmente servidores) podemos llegar a encontrarnos con un consumo desmesurado de RAM; lo cual dependiendo de la situación puede ser bueno, ya que tal vez deseemos que las aplicaciones tengan el mayor rendimiento posible. Pero otras veces nos podemos encontrar con que tenemos una cantidad de RAM libre muy ajustada y tal vez nos veamos en la necesidad de liberarla. Dicha necesidad se suele manifestar especialmente en:
Para ello habría que escribir uno de estos tres comandos (sólo uno) como root:
Dependiendo del número escogido la eliminación de la caché sería mayor o menor; exactamente estos números implicarían:
Es por ello que en equipos que están siempre conectados (generalmente servidores) podemos llegar a encontrarnos con un consumo desmesurado de RAM; lo cual dependiendo de la situación puede ser bueno, ya que tal vez deseemos que las aplicaciones tengan el mayor rendimiento posible. Pero otras veces nos podemos encontrar con que tenemos una cantidad de RAM libre muy ajustada y tal vez nos veamos en la necesidad de liberarla. Dicha necesidad se suele manifestar especialmente en:
- Equipos de bajas prestaciones.
- Servidores.
- Equipos que tengamos siempre conectados.
Para ello habría que escribir uno de estos tres comandos (sólo uno) como root:
- sync && echo 1 > /proc/sys/vm/drop_caches
- sync && echo 2 > /proc/sys/vm/drop_caches
- sync && echo 3 > /proc/sys/vm/drop_caches
Dependiendo del número escogido la eliminación de la caché sería mayor o menor; exactamente estos números implicarían:
- Este número implicaría la liberación de caché más suave, ya que únicamente libera la pagecache; también conocida como caché del disco.
- Este número sería un poquito más agresivo ya que eliminaría toda la información de los metadatos (pemisos, datos, etc..) almacenados en la caché.
- Este número borraría ambos, tanto caché del disco como metadatos, de la memoria caché; siendo la opción más usada.
Si bien esta última opción puede parecer muy agresiva, es por lo general la más usada ya que se asegura de librar absolutamente toda la memoria caché. Una buena forma de comprobar que en efecto la caché ha sido liberada sería mediante el comando free, el cual mostraría la información referente a la memoria ram, incluyendo la cantidad de ram "cacheada". Generalmente, aún cuando hemos liberado la caché al completo, es normal encontrar siempre algo de información almacenada en la caché, aunque sea muy poca; si bien dicha cantidad de información es muchísima menor que la que teníamos originalmente.
Espero que os resulte útil.
Saludos.
No hay comentarios :
Publicar un comentario