domingo, noviembre 22, 2009

Breve: Limpiar cache de linux

Al parecer mi PC tiene corrupto algún módulo de memoria, el cual falla aleatoreamente causando que la máquina falle.
Las estocásticas molestias no ocurren sólo a nivel de cuelgues del sistema cuando lo dejo inactivo, sino que también suceden cuando estoy trabajando en él, acabando con mi paciencia y con mis aplicaciones.

No es coincidencia que la aplicación que más cuelgues ha recibido es Firefox, pues el navegador es lejos el programa que más uso en casa. Lamentablemente, cuando intento volver a abrirlo, éste falla sucesivamente, hasta reiniciar el sistema, debido a que el programa que está cargado en memoria, con algún bit corrupto es almacenado en un espacio que actúa como buffer, al cual simplemente le denominamos cache.

Mi problema tiene una solución: comprar módulos de memoria nuevos, y una placa madre (nunca he confiado en esta última, pues apenas comprada mató a un módulo de memoria, el cual cambié por los actuales). Pero la solución inmediata para seguir trabajando sin reiniciar es ordenar al sistema operativo que limpie los datos almacenados en el buffer.

Para realizar esto, como root ejecute lo siguiente:

sync; echo 3 > /proc/sys/vm/drop_caches



referencias:
1- Documentación del sistema de archivos /proc, un excelente lugar para conocer un poco más las entrañas de linux

lunes, mayo 04, 2009

Mantención de imágenes virtuales de virtualbox

Luego de muchos meses sin escribir, vuelvo para dar un truco corto, pero muy útil.
Hoy noté que me quedaba sin espacio libre en la partición home, tanto en mi laptop como mi escritorio. no entendía porqué, pues no había instalado nada particularmente grande. Luego, investigando un poco me nació un sospechoso: El disco duro de la máquina virtual (VirtualBox) estaba usando mucho más espacio que el indicado por el sistema operativo invitado.
¿porqué ocurre ésto?
Lo que sucede es que cuando se borra un archivo en el sistema operativo windows, éste "marca" el espacio utilizado como libre, pero físicamente los datos permanecen ahí. Perjudicando enormemente a los entornos virtuales.
¿como solucionarlo?
Existen herramientas para windows, como sdelete, la cual "limpia" el espacio no utilizado marcándolos con ceros. Su utilidad es para asegurarse de tener entornos donde no se puedan recuperar archivos una vez borrados, sin embargo la utilidad para el caso de las máquinas virtuales es que existen programas que encogen el espacio utilizado por una unidad de tamaño variable, permitiendo recuperar espacio mal utilizado.
El método que expongo a continuación es para virtualbox, y utilizándolo el tamaño de mis imágenes bajó de 15G a sólo 4G!

- En un sistema operativo invitado, descargar sdelete (el enlace se encuentra al final de la entrada), y ejecutar:
sdelete -c c:

luego cerrar la máquina virtual, y desde una línea de comandos ejecutar:
VBoxManage modifyvdi /ruta/imagenwin.vdi compact

es necesario especificar la ruta completa del archivo, o la misma que está registrada en el archivo de configuración de VirtualBox.

Enlaces útiles
sdelete: Utilidad de Microsoft para borrar completamente los archivos.