Usando ramzswap para mejorar el uso de memoria

De siempre me han apasionado los compresores de memoria. Es cierto que aquellos primeros sistemas, de los que ya ni me acuerdo del nombre (incluso había uno oficial de Microsoft que iba con MS-DOS 6 ó 7) eran una patraña: los ordenadores eran tan lentos y los algoritmos de compresión tan poco sofisticados que ejecutar la compresión de la página era casi menos eficiente que dejar que se escribiera en disco. Sin embargo, los tiempos han cambiado, y los procesadores son mucho más potentes, y los algoritmos de compresión más eficientes.

Ahora, en los últimos núcleos de Linux (al menos desde el 2.6.32), existe el módulo ramzswap. He empezado a usarlo hoy y noto el sistema más ágil, ya que hay veces que al cambiar de aplicaciones notaba cómo se restauraba del disco algún estado. Sin embargo, ahora no lee de disco y tarda menos tiempo. Los pasos para usar el ramzswap en Ubuntu 10.10 (en Ubuntu 10.04 no hace falta el paso intermedio):


# modprobe ramzswap
# /usr/lib/initramfs-tools/bin/rzscontrol /dev/ramzswap0 --init
# swapon /dev/ramzswap0


rzscontrol también permite mostrar las estadísticas de la partición. En mi caso, unos resultados interesantes:


DiskSize: 1014604 kB
NumReads: 226
NumWrites: 5962
FailedReads: 0
FailedWrites: 0
InvalidIO: 0
NotifyFree: 19
ZeroPages: 826
GoodCompress: 99 %
NoCompress: 0 %
PagesStored: 5117
PagesUsed: 1331
OrigDataSize: 20468 kB
ComprDataSize: 5072 kB
MemUsedTotal: 5324 kB


En este caso, ha usado 1GB para la memoria swap comprimida, de los cuales, ha almacenado 20MB. Sin embargo, gracias a la compresión, sólo ocupa 5MB de memoria física (un ratio de compresión de 4:1). Seguiré haciendo más pruebas en el ordenador de mi despacho que es el que peor va al ejecutar Thunderbird + Google Chrome + Eclipse...

blog comments powered by Disqus