artículos
 comentarios

No me voy a enrollar mucho con los detalles, pero aquí teneis un consejo para mejorar el rendimiento de disco con Linux en general, y Debian y Ubuntu en particular.

Cada vez que Linux accede a un fichero (aunque sea sólo para leerlo) en un sistema basado en ext3, por defecto actualiza un atributo que contiene la fecha y hora del último acceso. Como comprendereis esto supone un trabajo que en muchos casos es innecesario, y que puede hacer ganar un poco de tiempo al sistema operativo. La alternativa es deshabilitar este comportamiento en el fichero /etc/fstab añadiendo la opción “noatime”. En Ubuntu además se puede habilitar la funcionalidad similar pero más eficiente de “relatime” (por defecto en Ubuntu desde Hardy Heron), pero que yo sepa, no está disponible en Debian.

Por ejemplo, este es mi /etc/fstab para el servidor con Debian 4.0

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults 0 0
/dev/hda1       /               ext3    defaults,noatime,errors=remount-ro 0 1
/dev/hda6       /home           ext3    defaults,noatime 0 2
/dev/hda5       none            swap    sw 0 0

Una vez modificado el fichero de configuración para añadir “noatime” a las particiones del disco, lo más fácil es reiniciar para aplicar los cambios. Una forma de ver el rendimiento es mediante el comando “hdparm -tT /dev/hda” (si no lo tienes instalado, haz “sudo apt-get install hdparm“)

Estos son los resultados del test antes del cambio:

 Timing cached reads:   134 MB in  2.02 seconds =  66.25 MB/sec
 Timing buffered disk reads:  124 MB in  3.03 seconds =  40.96 MB/sec

Y después del cambio:

 Timing cached reads:   140 MB in  2.01 seconds =  69.51 MB/sec
 Timing buffered disk reads:  136 MB in  3.04 seconds =  44.72 MB/sec

Con un cambio de nada, consigo un 5% de mejora sobre lecturas cacheadas, y algo más de un 9% en lecturas directas. No es mucho, pero en un PC viejo, con micro de 900 MHz, utilizado como servidor de ficheros… ¡se agradece!

Por cierto, el “truco” del noatime también vale para Windows cuando usamos sistema de ficheros NTFS (si no lo estás usando, cámbialo ya). Cambiando la clave NtfsDisableLastAccessUpdate a un valor de 1, conseguimos el mismo efecto.

Ojo, estos cambios eliminan una información (tiempo de acceso a un fichero) útil en investigaciones forenses. Esto puede ser bueno o malo dependiendo del punto de vista que se mire :)

Una respuesta a “Mejorando rendimiento de disco en Linux”

  1. 10 Nov 2008 5:10 pm  jag

    Este método es U-T-I-L-I-S-I-M-O en los sistemas en los que el SO está en una memoria flash: reduces el tiempo de acceso y alargas un montón la vida de esta.