Linux se esta comiendo mi memoria

La página www.linuxatemyram.com explica muy sencillamente como funciona la cache de disco en Linux. La he traducido como ejercicio y para ofrecerla a quien no la comprenda en inglés.

¿Qué está pasando?

Linux esta pidiendo prestada la memoria no usada para cachear el disco. Esto hace parecer como que estas bajo de memoria, ¡pero no lo estas! ¡Todo esta bien!

¿Por qué está haciendo esto?

Cachear el disco hace el sistema mucho más rápido. No hay desventajas, excepto el confundir a los principiantes. No toma memoria de tus aplicaciones de ningún modo. ¡Nunca!

¿Y si quiero ejecutar más aplicaciones?

Si tus aplicaciones quieren más memoria, sólo tienen que recuperar un pedazo de lo que la cache de disco pidió prestado.

¿Necesito más swap?

No, la cache de disco sólo pide prestado la RAM que las aplicaciones actualmente no quieren. No usará memoria virtual (swap). Si las aplicaciones quieren más memoria, solo tienen que recuperarla de la cache de disco. Las aplicaciones no empezarán a intercambiar memoria con la memoria virtual (swaping)

¿Como interrumpo a Linux de hacer esto?

No puedes deshabilitar la cache de disco. La única razón en la que alguien querría deshabilitar la cache de disco es porque piensa que toma memoria de sus aplicaciones, ¡lo cual no hace! La cache de disco hace que las aplicaciones se ejecuten más rápido y más suavemente, pero NUNCA JAMÁS tomará memoria de ellas. Por lo tanto, no hay absolutamente ninguna razón para deshabilitar la cache de disco.

¿Por qué top y free dicen que toda mi RAM esta usada si no es así?

Esto es un mal entendido en los términos. Ambos tú y Linux estáis de acuerdo que la memoria tomada por aplicaciones es “usada”, mientras que la memoria que no esta usada por nada es “libre”

¿Pero como llamas a la memoria que es usada por algo y que esta disponible para las aplicaciones?

Tú la llamarías “libre”, pero Linux la llama “usada”.

Memoria es Para ti es Para Linux es
Usada por aplicaciones Usada Usada
Disponible para aplicaciones pero usada por algo Libre Usada
No usada por nada Libre Libre

Este “algo” es lo que los comandos top y free llaman “buffers” y “cached”. Ya que la terminología entre tú y Linux difiere, piensas que estas bajo de RAM cuando realmente no lo estas.

¿Como puedo ver cuanta RAM libre realmente tengo?

Para ver cuanta RAM esta libre para uso de tus aplicaciones, ejecuta el comando free -m y mira la fila que dice “-/+ buffers/cache” en la columna que dice “free”. Esa es tu respuesta en megabytes:

Si no sabes como leer los números, pensarás que la RAM esta al 99% llena cuando en realidad es sólo 42%.

¿Como puedo verificar estas cosas?

Ve a esta página para más detalles y como puedes experimentar con la cache de disco.

Aviso en php al cargar sqlite.so

Si nos sale el siguiente error en php 5

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626/sqlite.so’ – /usr/lib/php5/20090626/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0

Esto ocurre porque el soporte de sqlite ha sido eliminado en favor de sqlite3 y su archivo de configuración queda en su lugar indicándolo a php que cargue un componente que ya no esta en el sistema. Para resolverlo editamos su archivo de configuración:

sudo nano /etc/php5/conf.d/sqlite.ini

Buscamos :

extension=sqlite.so

Y le ponemos un punto y coma para que quede convertido en comentario y no indique la carga de la librería. Quedando así:

;extension=sqlite.so

Guardamos. Ahora ya no deberia mostrar el aviso.

Instalar VirtualBox en Linux Mint 13 Maya Cinnamon

Para instalar VirtualBox 4.1 en linux Mint 13 Maya Cinnamon tan solo hemos de seguir los siguientes pasos.

Agregar los repositorios al sources.list mediante nano.

sudo nano /etc/apt/sources.list

y añadimos el texto

deb http://download.virtualbox.org/virtualbox/debian precise contrib

Guardamos y salimos.

Añadimos las claves pgp del repositorio.

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

Actualizamos los repositorios e instalamos.

sudo apt-get update &&  sudo apt-get install virtualbox-4.1

Una vez instalada la aplicación, aparecerá en el grupo system tools del menú.