Archivo del sitio

Linux se come mi RAM

¡Linux se come mi RAM!

¡Ayuda! ¡Linux se come mi RAM!

En varias ocasiones me han preguntado, o usado como argumento en contra, por qué en las últimas versiones de los sistemas operativos no queda casi RAM libre y está siempre ocupada. Las variantes son múltiples: “No me queda memoria libre”, “la nueva versión de Windows es peor me consume toda la memoria”…

Finalmente, alguien ha decidido dar respuesta a esta pregunta centrándose en Linux pero, desgraciadamente, en inglés. Este artículo es una traducción libre de Help! Linux ate my RAM!.

Preguntas y respuestas

¿Qué sucede?

Linux está “prestando” la memoria no asignada a la cache de disco. Por esto parece que el equipo está bajo de memoria pero no es así ¡Todo está bien!

¿Por qué hace eso?

La cache de disco hace que el sistema sea mucho más rápido. No existen inconvenientes, a excepción de la confusión que genera. No le quita memoria a las aplicaciones de ninguna manera.

¿Qué pasa si quiero ejecutar más aplicaciones?

Si las aplicaciones necesitan más memoria, se devuelve un bloque prestado a la cache de disco. La memoria ocupada por la cache de disco se puede devolver a las aplicaciones inmediatamente.

¿Necesito incrementar la swap?

No, la cache de disco sólo toma prestada la RAM que no está siendo usada por las aplicaciones. No utiliza swap. Si las aplicaciones necesitan más memoria, se utiliza parte de la cache de disco y no harán swapping.

¿Cómo puedo evitar que Linux haga esto?

La respuesta corta: No se puede deshabilitar la cache de disco.

La única razón que alguien puede tener para deshabilitar la cache de disco es porque piensan que está reduciendo la memoria disponible para las aplicaciones ¡pero no es así!

La caché de disco hace que las aplicaciones carguen más rápido y ejecuten de forma más fluida, pero nunca jamás limita la cantidad de memoria de las aplicaciones.

Por eso no existe ninguna razón para deshabilitarla.

¿Por qué top y free indican que toda mi RAM está utilizada si no es así?

Es sencillamente una confusión de términos.

Todos, incluido Linux, coincidimos en que la memoria asignada a aplicaciones está “usada” mientras que la memoria no asignada a nada está “libre”. El problema es ¿cómo denominamos a la memoria que está utilizada para algo pero disponible para aplicaciones?

Nosotros respondemos “libre” mientras que Linux la considera “usada”

Memoria Persona Linux
Asignada aplicación Usada Usada
Asignada “algo” (no aplicación) Libre Usada
No asignada Libre Libre

Ese “asignada en algo” es lo que top y free denominan “buffers” o “cached“. Como nuestra terminología y la de Linux difieren, se genera esta confusión.

¿Cómo puedo ver cuánta memoria RAM libre tengo realmente?

Para saber cuánta memoria RAM está libre hay que ejecutar free -m y fijarse en la columna “free” de la línea “-/+ buffers/cache“. Esa es la memoria disponible para aplicaciones (libre) en megabytes:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1504       1491         13          0         91        764
-/+ buffers/cache:        635        869 
Swap:         2047          6       2041
$

La interpretación habitual hace saltar la alarma al ver que la RAM está ocupada al 99% (13 MB libres) cuando realmente sólo se está en uso el 42%

¿Cómo puedo verificar que esto es verdad?

Ejecutando algunos de los programas y experimentos con la memoria y cache de Linux. Se necesitan algunos conocimientos de programación en sistemas Linux y conocer inglés.

Conclusiones

En la actualidad, la memoria RAM es un recurso físico gestionado por el sistema operativo y puesto a disposición de las aplicaciones en forma de memoria virtual. Si dicho recurso no va a ser utilizado en otro fin es mejor usarlo para cualquier finalidad que pueda mejorar el rendimiento, funcionamiento del sistema que desaprovecharlo sin usar.

Por último, gracias al autor de la página original: vidarholen.net

Syslog: la piedra angular de los registros del sistema

Este artículo es una pequeña revisión de syslog, un estándar (RFC 3164 y RFC 5424) de registro de mensajes (logs en terminología informática) ampliamente difundido en sistemas *nix. La pretensión es que, tras su lectura, obligue a plantear si es necesario diseñar un sistema de logs para nuestra aplicación o sería mejor integrarlo con el syslog del sistema, lo que muchos administradores del sistema nos agradecerán.

Antes de empezar ¿qué es un registro de mensajes/eventos? No es más que un lugar en el que almacenar lo que ha sucedido con un doble objetivo: detectar/solucionar problemas en el sistema y auditar las acciones acometidas. Lo más habitual es un fichero (o tabla en una BBDD), ya sea local o remoto, en el que cada línea almacena información que permita responder a las preguntas: ¿Cuándo? ¿Quién? ¿Dónde? ¿Qué?

De la definición anterior ya se vislumbran dos agentes: el mensaje producido y el almacenamiento. El estándar separa claramente estos conceptos: la generación de mensajes (desde sistemas operativos Unix, Linux, Solaris, Windows o MacOs hasta dispositivos de comunicación como routers) de su proceso/almacenamiento (fichero local o remoto, BBDD…) y posterior análisis.

Esta separación aporta una serie de beneficios. Por un lado, proporciona simplicidad para el desarrollador que genera los eventos con un determinado formato y no tiene que preocuparse por detalles de almacenamiento o registro remoto. Por el otro otorga una gran versatibilidad al administrador ya que los receptores proporcionan filtros, envío remoto (que permite recopilar todos los mensajes en una única ubicación), almacenamiento en múltiples soportes…

Esquema syslog en red

Esquema ideal de registro remoto de eventos usando el protocolo Syslog (Imagen: Maldito Nerd)

Por ello, bajo la denominación ‘syslog‘ se engloban varios componentes diferenciados: la biblioteca que usan las aplicaciones productoras de eventos, la aplicación/demonio que se encarga de almacenarlos y el protocolo de comunicación que emplean para intercambiar dichos mensajes. Rasquemos la superficie de cada uno de ellos.

Lee el resto de esta entrada

Leer comics en el ordenador

Aunque estén denostados en el sistema educativo, los cómics son una buena forma de acercar la lectura a los niños. Nuestra generación ha disfrutado de grandes dibujantes y guiones que nos han entretenido y arrancado carcajadas durante largas horas.

En este mundo, cada vez más digital, los cómics han sufrido una transformación equivalente. Los cómics digitales no son más que imágenes escaneadas y comprimidas, con las extensiones cbr o cbz (Comic Book Rar y Comic Book Zip, respectivamente). Para poder disfrutar de esta versión digital es necesario un visor de cómics que facilite su presentación y lectura.

Existen varios programas que realizan esta labor con mejor o peor desempeño aunque todos ellos tienen la misma base: presentar las imágenes escaneadas en orden, ya sea de un directorio o de un fichero cbr/cbz, que se descomprime de forma automática, presentándolas a una o dos páginas, aplicando filtros para mejorar la calidad de la imagen y con gran resolución para facilitar la lectura.

La primera búsqueda suele acabar en CDisplay, el visor de cómics por antonomasia en Windows. Esta pequeña aplicación realiza su labor a la perfección y sin demasiadas florituras. Carece prácticamente de interfaz y opciones, con la excepción de un pequeño menú oculto en el botón derecho del ratón.

RayViewer

Sin embargo, existe una alternativa de gran interés y con acento hispano: RayViewer. Proporciona una interfaz similar al Acrobat (versiones previas a la 8), dispone de un buen conjunto de filtros y no es especialmente pesado. Hay que destacar su filtro lanczos que permite mejorar la imagen adaptándola al tamaño de la pantalla con una calidad increíble. Unido al prefetch (mientras se lee una página se aplican los filtros a la siguiente para reducir el tiempo de carga) proporciona la mejor experiencia de usuario.

Comical en Windows 2000

Para aquellos que no utilicen Windows como su sistema operativo hay una alternativa multiplataforma. Comical es uno de los visores más ligeros, programado en C++ y con una buena calidad de imagen gracias a sus filtros. Lo único malo de esta opción es que lleve casi dos años sin evolucionar.

Sin duda, en la actualidad, es posible disfrutar de nuestra colección de cómics digitales preservando los originales en papel del deterioro por el uso, aunque éstos siempre tengan su encanto…

Seguir

Get every new post delivered to your Inbox.

Únete a otros 199 seguidores