Pruebas con XFS, ReiserFS, Ext2FS, y FAT32


No son benchmarks en toda regla… solo he hecho unas pruebas bastante simples pero algunas cosas me han sorprendido y me gustaria que les echarais un vistazo 🙂

document.write(‘Automatic translation with Google!‘);
Bueno, esto es un poco más riguroso que lo que pasé por la lista de correo el otro dia… La idea es medir el rendimiento de diversos sistemas de ficheros, en estas pruebas no se han tenido en cuenta para nada otros aspectos de los sistemas de ficheros que sin embargo son muy importantes: XFS y ReiserFS tienen journaling, y XFS tiene caracteristicas avanzadas como ACLs, atributos extendidos, etc. Es decir, esta “comparativa” tiene en cuenta un solo aspecto de los sistemas de ficheros, pero hay otros muchos aspectos importantes a tener en cuenta a la hora de elegir.
Para empezar, he hecho estas pruebas con una Red Hat 7.1, con el instalador modificado por SGI para instalar directamente con XFS 1.0 para Linux, con el kernel y todas las herramientas a punto. He recompilado el kernel para tener soporte para ReiserFS sin el DEBUG activado (lo cual lo hace muy lento).
Aparte, tengo que decir que he hecho todas estas pruebas sobre un disco duro más rápido que el que usé para lo que comenté en la lista de correo (llega hasta 12.5MB/s según hdparm -t). Todas las pruebas están hechas en la misma máquina, con el mismo sistema, el mismo kernel, y se han hecho en el mismo disco duro, en la misma partición. Lo único que ha cambiado ha sido el sistema de ficheros: mi intención era básicamente probar XFS y compararlo con ReiserFS, pero he añadido Ext2FS y FAT32 como ejemplo (aunque algunos dirán que soy cruel por incluir FAT32 ;-). He utilizado el comando time para medir los tiempos de ejecución de los comandos, y los tiempos que figuran en las tablas son la media de los valores obtenidos en tres experimentos. Me he fijado en el tiempo “real” transcurrido durante la ejecución, y hay que tener en cuenta que la máquina estaba en modo monousuario así que no hacia prácticamente nada más que ejecutar mis comandos.

Primera Prueba: escritura, lectura y borrado de un fichero relativamente grande (256MB). Los comandos utilizados han sido estos (omitiré el time puesto que se ha utilizado con todos los comandos):

  • dd if=/dev/zero of=./prova bs=1M count=256
  • dd if=./prova of=/dev/null bs=1M count=256
  • rm -f ./prova

Y los tiempos han sido estos (en segundos):

FSEscrituraLecturaBorrado
ReiserFS18.523.410.4
Ext2FS20.321.380.57
XFS16.3219.420.26
FAT3243.6527.981.59

Segunda Prueba: esta se ha basado en el código fuente del kernel 2.4.4. Me he bajado el .tar.gz y lo he descomprimido para trabajar siempre con el .tar (de más de 100MB) sin implicar más al gzip. Los comandos utilizados han sido estos (vuelvo a omitir el time):

  • cp linux-2.4.4.tar prova.tar
  • tar xf prova.tar
  • rm -f prova.tar
  • rm -rf linux

Y los tiempos han sido estos (en segundos):

FSCopia .tarExtraccion .tar Borrado .tarBorrado arbol
ReiserFS38.4858.440.4510.09
Ext2FS21.3159.192.8811.12
XFS16.2135.440.1821.96
FAT3239.76134.191.26.7

Conclusiones: me ha sorprendido la velocidad del XFS porque en la primera prueba que hice (un solo experimento) no parecia tan rápido. Para escritura, lectura y borrado de ficheros grandes (secuencialmente) parece que es el que corre más. Aunque el ReiserFS no lo hace nada mal, esperaba que le ganara al XFS. En esta prueba me ha llamado la atención otra cosa: todos excepto FAT32 tardan más en leer que en escribir. Alguien puede explicar eso? Algo relacionado con /dev/null y /dev/zero???

En cuanto a las pruebas con el código fuente del kernel… la copia del .tar ha dado resultados algo raros: a primera vista el más rápido ha sido XFS, luego Ext2FS, luego ReiserFS, y finalmente (que sorpresa ]:-) FAT32. Pero eso es mirando las medias. Hay otra cosa curiosa (que no he puesto en la tabla): en esta prueba la varianza usando ReiserFS ha sido muy grande, oscilando entre 16.94 y 63.48 segundos. No puedo explicar eso. Repetí esta prueba seis veces en lugar de tres, y no se estabilizó. Ejecutándola de tres en tres veces (tenia el script preparado para hacer eso, y lo ejecuté dos veces) la primera copia tardaba unos 20 segundos, la segunda unos 60 y la tercera unos 30. Eso me pasó dos veces. Poltergeist?

La extracción del .tar (que implica lectura de un fichero grande intercalada con la creación de un gran árbol con muchos ficheros) ha sido fulminante para FAT32, mientras que XFS se ha portado más que bién, y ReiserFS y Ext2FS regular (casi tardan lo mismo). Si en la prueba anterior llamaba la atención la enorme varianza en el tiempo de copia de ficheros grandes con ReiserFS, aquí ha llamado la atención la consistencia de los resultados de XFS (idénticos en los tres experimentos). No es que esté promocionando el XFS, pero es que me han salido así las pruebas O:-)

En cuanto al borrado… Creia que el más rápido era ReiserFS pero el XFS le ha ganado borrando un fichero grande. En cambio, el XFS es el más lento con muchisima diferencia a la hora de borrar una estructura compleja de directorios con muchos ficheros, y el FAT32 (?) es el más rápido. Alguien puede explicarlo?
Cualquier comentario será bienvenido 😉

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=626 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.