Antiguo y abandonado blog de Ricardo Galli :-(

Thursday 9/8/2007

noatime y nodiratime ¡ya!

Filed under: Linux, Hackerdom — gallir @ 3:53

Las actualizaciones del atime son de lejos la más grande de las deficiencias que Linux tiene actualmente. Eliminando las actualizaciones del atime mejorará el rendimiento de los Linux normales más que todas las mejoras del pagecache de los últimos 10 años, combinadas. — Ingo Molnar

No puedo estar más de acuerdo, hace tiempo que todos mis ordenadores –de escritorio y hasta del Menéame– tienen deshabilitada las opciones de atime y diratime. No sé porqué las distros como Ubuntu ya no vienen así por defecto.

Es muy fácil, basta agregar las opciones “noatime,nodiratime” en el /etc/fstab. Por ejemplo (la siguiente es la línea del servidor del menéame):

Actualización: Leo en LWN que no hace falta el nodiratime si se especifica atime, ya que este último lo engloba.

/dev/sda1    /   ext3    defaults,noatime,nodiratime,errors=remount-ro 0       1

Si no quieres reiniciar el servidor/ordenador para que tengan efecto las modificaciones, también es muy fácil:

mount -o remount,noatime,nodiratime /

Breve explicación

Siguiendo el diseño original de Unix, para cada fichero se almacenan una serie de “metadatos”, entre ellos la fecha de creación/modificación –mtime–, modificación del inodo –ctime–, y también la fecha de último acceso –el atime–. Eso significa que aunque se acceda a un fichero para sólo lectura se genera una escritura al disco para actualizar la hora de acceso –tiene precisión de un segundo–. Esto ocurre aunque el contenido del fichero esté completamente en el pagecache, lo que lo hace aún más ridículo.

El noatime indica que no se actualice la hora de acceso a un fichero. nodiratime es similar pero para accesos a directorios (por ejemplo cuando se busca un fichero por su nombre).

¿Por qué se sigue usando? Sobre todo por razones históricas y porque unos pocos programas de correo –creo que también el mutt– lo usan para verificar si han llegado un correo nuevo. Ya no tiene ni sentido para esto, porque el Linux tiene interfaces más adecuadas para ello, por ejemplo el inotify, que notifican a los programas cuando se modifica un fichero o directorio.

21 Comments

  1. ¿Solo usas una partición?

    Comment by RBA — Thursday 9/8/2007 @ 5:33

  2. permi’tame una correccio’on a su breve explicacion senyor Galli… el ctime de un fichero no es **necesariamente** la fecha de creacion del mismo.

    Pero no se preocupe, es t’ipico fasho de principiante… :P

    Comment by NightySunHawk — Thursday 9/8/2007 @ 5:43

  3. […] Contact the Webmaster Link to Article linux noatime y nodiratime ¡ya! » Posted at Ricardo Galli, de software libre on […]

    Pingback by University Update - Linux - noatime y nodiratime ¡ya! — Thursday 9/8/2007 @ 5:54

  4. OK, yo lo llevo usando durante cierto tiempo, pero únicamente en máquinas viejas /lentas) en las que acelerar el acceso a disco con este hack se notaba.

    Pero, ¿se va a apreciar en una máquina nueva con más rendimiento?

    Comment by Juanjo — Thursday 9/8/2007 @ 9:20

  5. una pregunta de “rookie”, como puedo saber que el noatime y el nodiratime se estan ejecutando ?

    gracias

    Comment by TommyX !! — Thursday 9/8/2007 @ 9:49

  6. Los administradores solían usar el atime para guardar los archivos que no eran accedidos por un largo periodo de tiempo (se copiaban a otro lugar además de hacer backup) y así liberar espacio.

    Donde se nota más el atime es en los portátiles puesto que el disco suele estar en reposo durante más tiempo consumiendo menos batería

    Comment by pmarin — Thursday 9/8/2007 @ 9:55

  7. TommyX !!: mount (ejecutado sin parámetros) te lo dice ;)

    También se puede usar chattr para cambiar el parámetro en un fichero concreto, parece.

    Comment by Juanjo — Thursday 9/8/2007 @ 10:05

  8. #1, no, pero con una línea es suficiente :-)

    #2, no había dicho que el ctime sea lo que usted dice que es ;-) (ni lo había pensado poner, ahora lo agregué en la lista junto con su nombre)

    Comment by gallir — Thursday 9/8/2007 @ 11:11

  9. Hummmm, qué interesante. Imagino que el incremento de rendimiento será significativo en servidores de ficheros/web/correo etc., pero… ¿sabes si este incremento es apreciable por el usuario en el caso de equipos de escritorio o portátiles? Y, en el caso de los portátiles… ¿sería lo suficientemente significativo como para, por ejemplo, alargar un poco la carga de la batería?

    Comment by Lillo — Thursday 9/8/2007 @ 12:14

  10. #8, en el caso de portátiles es aún más inexplicable que no los tengan por defecto, ya que muchas veces evita que el disco duro de ponga en marcha.

    Comment by gallir — Thursday 9/8/2007 @ 12:30

  11. hola de nuevo

    bueno ya ho le probado en una maquina virtual para hacer la prueba. claro esta que el rendimiento de la maquina virtual esta supeditado a la real, pero no he visto mejora del mismo.

    Mas tarde ya lo probaré en mi portatil, por el ultimo apunte que comentas, deberia ser asi.

    por cierto hay alguna herramienta para comprobar la diferencia de rendimiento de la maquina, en particular de los discos duros ?

    gracias

    Comment by TommyX !! — Thursday 9/8/2007 @ 13:28

  12. por cierto, Juanjo, gracias :)

    ahora ya lo he probado en la maquina “real”, y no se si son manias, pero algo de incremento si que he notado, claro, por eso necesito alguna herramienta “libre de carga emocional” para contrastar los resultados. ;)

    Comment by TommyX !! — Thursday 9/8/2007 @ 13:51

  13. Optimizar el acceso a disco en Windows con NTFS…

    Acabo de leer hace unas horas en el blog de……

    Trackback by víctor.eu.org — Thursday 9/8/2007 @ 14:09

  14. ¿Esta mejora afecta a todos los sistemas de archivo(JFS,XFS) o sólo a ext3?

    Comment by darkglam — Thursday 9/8/2007 @ 20:38

  15. Una pregunta estúpida, parece que esta opción me vendrá bien pero hay algo que no me convence:

    Dices que «algunos programas de correo lo usan para ver si hay correo nuevo». Por ejemplo, ¿thunderbird? Si modificar ésto va a hacer que Thunderbird no se entere del correo nuevo pues paso, porque lo tengo abierto todo el día… si no tiene daños colaterales lo activo ahora mismo… ¿Tienes info al respecto? Yo soy un chancletas que controla mucho :)

    Comment by Versvs — Friday 10/8/2007 @ 0:29

  16. #14, no, el thunderbird usa Maildir, esto del atime sólo se usa/usaba para el mbox.

    Comment by gallir — Friday 10/8/2007 @ 0:55

  17. muchas gracias :)

    Comment by Versvs — Friday 10/8/2007 @ 1:16

  18. Hola, una duda, por ejemplo en máquinas que estan siempre encendidas y hay procesos que crean, modifican, acceden a ficheros en el /tmp y se utilizan procesos como el tmpwatch para borrar el contenido que no se ha accedido en x dias, ¿dejará de funcionar al tener activada esta opcion ?
    ¿funciona el ls -ltu ?

    Santi.

    Comment by Santi — Friday 10/8/2007 @ 9:12

  19. bueno, ya he hecho las pruebas de benchmark con el programa bonnie++ , y efectivamente una vez hechas las modificaciones que nos propones, la cosa mejora. el resultado lanzado por bonnie, es un poco “espeso” de ver, pero solo es la primera impresión :)

    ** CON ATIME Y DIRATIME ACTIVADOS
    Version 1.03 ——Sequential Output—— –Sequential Input- –Random-
    -Per Chr- –Block– -Rewrite- -Per Chr- –Block– –Seeks–
    Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
    informatica-desk 1G 14967 74 16366 32 12929 52 22959 89 37378 36 129.0 10
    ——Sequential Create—— ——–Random Create——–
    -Create– –Read— -Delete– -Create– –Read— -Delete–
    files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
    16 7355 97 18902 99 14708 99 8508 99 20045 98 14730 99
    informatica-desktop,1G,14967,74,16366,32,12929,52,22959,89,37378,36,129.0,10,16,7355,97,18902,99,14708,99,8508,99,20045,98,14730,99

    ** CON ATIME Y DIRATIME DESACTIVADOS (NOATIME,NODIRATIME)
    Version 1.03 ——Sequential Output—— –Sequential Input- –Random-
    -Per Chr- –Block– -Rewrite- -Per Chr- –Block– –Seeks–
    Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
    informatica-desk 1G 18328 86 26441 45 12955 51 24021 92 38851 37 137.5 18
    ——Sequential Create—— ——–Random Create——–
    -Create– –Read— -Delete– -Create– –Read— -Delete–
    files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
    16 7404 101 19965 100 15124 101 8066 95 20501 101 15189 101
    informatica-desktop,1G,18328,86,26441,45,12955,51,24021,92,38851,37,137.5,18,16,7404,101,19965,100,15124,101,8066,95,20501,101,15189,101

    Comment by TommyX !! — Friday 10/8/2007 @ 10:06

  20. […] Nova orixinal aquí. […]

    Pingback by Mellorando o rendimento do teu sistema « Que che vou contar… — Friday 10/8/2007 @ 11:51

  21. Acabo de revisar mi gentoo y lo traía habilitado para la particion root y boot. No recuerdo haberlo hecho yo.

    Comment by roger — Wednesday 15/8/2007 @ 20:23

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress