Existen varias comparaciones sobre sistemas de archivos de Linux disponibles, pero la mayoría de ellos son anécdotas, basadas en tareas artificiales o tareas completadas bajo kernel antiguos. Este benchmark es basado en el ensayo de 11 tareas reales apropiadas para un servidor de archivos con hardware de generación antigua (Pentium II/III, Disco Duro EIDE).
Porque otra prueba de benchmark ?
He encontrado 2 pruebas estudios benchmark cuantitativas y reproducibles usando el kernel 2.6.x (ver referencias). Benoit (2003) implementado 12 pruebas usando grades archivos (1+GB) en un server Pentium II 500 con 512Mb en RAM. Esta prueba era absolutamente informativa y mayormente aplicados con configuraciones el cual manipulaba exclusivamente grandes archivos (ejm. multimedia, base de datos).
Piszcz (2006) puso 21 tareas en ejecución que simulaban una variedad de operaciones de archivo en un PIII-500 con 768MB en RAM y un disco duro de 400GB EIDE-133. Hasta la fecha, ésta prueba parece ser el trabajo más comprensivo sobre el núcleo 2.6. Sin embargo, puesto que muchas tareas eran “artificiales” (e.g., copiar y quitar de 10 000 directorios vacíos, tocando 10 000 archivos, partiendo archivos recurrentemente), puede ser difícil transferir algunas conclusiones a los ajustes del mundo real.
Así, el objetivo de la presente prueba de benchmark es completar algunas de las conclusiones de Piszcz(2006), centrándose exclusivamente en las operaciones del mundo real encontradas en servidores de archivo de small-business (véase la descripción de las tareas).
Configuraciones de las pruebas
Hardware
-
Procesador: Intel Celeron 533
-
512MB RAM PC100
-
Placa base: ASUS P2B
-
Disco Duro: WD Caviar SE 160GB (EIDE 100, 7200 RPM, 8MB Cache)
- Controlador: PCI ATA/133.
OS
Sistemas de Archivos
Descripción de tareas seleccionadas
Operaciones en un archivo grande (imagen ISO, 700MB)
-
Copia del ISO desde el segundo disco duro al disco duro de pruebas.
-
Recopiado del ISO a otra ubicación en el disco duro de pruebas.
- Eliminar ambas coporas del ISO
Operaciones en un árbol de archivos (7500 archivos, 900 directorios, 1.9GB)
-
Copiar el árbol de archivos desde el segundo disco al disco de pruebas.
-
Recopiado del árbol de directorios a otra ubicación en el disco duro de pruebas.
- Eliminar ambas copias del árbol de archivos
Operaciones en el árbol de archivos
-
Listar recurrentemente todo el contenido del árbol de archivos y guardarlo en el disco de pruebas
- Buscar archivos haciendo matching por comodines específicos en el árbol de archivos
Operaciones en el sistema de archivos
-
Creación del sistema de archivos (mkfs) (todo el SA fue creado con los valores por defecto)
-
Montaje del sistema de archivos
- Desmontaje del sistema de archivos
La secuencia de las 11 tareas fue ejecutada como un BASH Script el cual fue ejecutado tres veces (se reporta el promedio). Cada secuencia lleva cerca de 7 Min. Tiempo para completar la tarea (en seg), porcentaje del CPU dedicado a la tarea tarea fue computada por GNU Time Utility (versión 1.7).
RESULTADOS
Capacidad de la partición
La inicial (después de la creación del sistema de archivos) y residual (después de eliminar todos los archivos) la capacidad de la partición eran computadas como el cociente del número de bloques disponibles por el número de bloques en la partición. Ext3 tiene la peor capacidad inicial (92.77%), mientras que los otros la capacidad era casi completa de la partición (ReiserFS = 99.83%, JFS = 99.82%, XFS = 99.95%). Interesante, la capacidad residual de Ext3 y ReiserFS eran idénticos a la inicial, mientras que JFS y XFS perdieron cerca de 0.02% de su capacidad de la partición, sugiriendo que este el sistema de archivo puede crecer dinámicamente pero no vuelve totalmente a su estado inicial (y tamaño) después de remover los archivos.
Conclusión: Para utilizar el máximo de su capacidad de la partición, elegir ReiserFS, JFS o XFS.
Creación, montaje y el desmontaje del sistema de archivos
La creación del sistema de archivos en la partición de prueba 20GB tomó:
Ext3 = 14.7 seg – 59% CPU
ReiserFS = 2.2 seg – 74% CPU
JFS = 1.3 seg – 74% CPU
XFS = 0.7 seg – 59% CPU
Para montar el sistema de archivos:
ReiserFS = 2.3 seg
Ext3 = 0.2 seg
JFS = 0.2 seg
XFS = 0.5 seg
Todos los sistemas de archivos tomaron entre un 6 y 9% de CPU para su montaje
ReiserFS también tomo el doble de tiempo para el desmontaje del sistema de archivos con un total de 0.4 seg, pero Ext3 y XFS tomaron mayor cantidad de CPU para desmontarse (34 y 45% respectivamente) comparables con los 14% de ReiserFS y 27% de JFS.
Conclusión: Para la creación rápida, el montaje/desmontaje del sistema de archivos, elegir JFS o XFS.
Operaciones en un archivo grande (imagen ISO, 700MB)
La copia inicial del archivo (en segundos):
Ext3 = 38.2
ReiserFS = 41.8
JFS = 35.1
XFS =34.8
Recopiar en el mismo disco (en segundos):
XFS = 33.1
Ext3 = 37.3
JFS = 39.4
ReiserFS = 43.9
Eliminación del archivo (en segundos):
JFS = 0.02
XFS = 0.02
ReiserFS = 1.5
Ext3 = 2.5
Todos los sistemas de archivos tomaron cantidades comparables de CPU para la copia (entre 46 y el 51%) y el recopiado (entre el 38% a el 50%). El ReiserFS utilizó el 49% de la CPU para eliminar la ISO, mientras los demás tomaron un 10%.
Conclusión: Para las operaciones rápidas en archivos grandes, elegir JFS o XFS. Si necesitas reducir al mínimo uso de la CPU, preferir JFS.
Operaciones en un árbol de archivos (7500 archivos, 900 directorios, 1.9GB)
La copia inicial del árbol (en segundos)
Ext3 = 158.3
XFS = 166.1
ReiserFS = 172.1
JFS = 180.1
Copiado del árbol de archivos a otra ubicación en el mismo disco duro (en segundos):
Ext3 = 120
XFS = 135.2
ReiserFS = 136.9
JFS = 151
Eliminación del árbol de archivos (en segundos):
Ext3 = 22
ReiserFS = 8.2
XFS = 10.5
JFS = 12.5
Todos los sistemas de archivos tomaron cantidades comparables de CPU para la copia inicial (entre 27 y el 36%) y copiar el árbol de archivos en otra ubicación (entre el 29% – JFS y el 45% – ReiserFS). Asombrosamente, el ReiserFS y el XFS usaron considerablemente más CPU para eliminar el árbol de archivos (el 86% y el 65%) mientras los demás tomaron 15% (Ext3 y JFS). Una vez más había una tendencia clara de JFS de utilizar menos CPU que cualquier otro sistema de archivos.
Conclusión: Para las operaciones rápidas en árbol de archivos grandes, elegir Ext3 o XFS.
Listado de directorios y búsquedas de archivos
El listado (recurrente) completo del directorio del árbol:
ReiserFS = 1.4 – 71% CPU
XFS = 1.8 – 70% CPU
Ext3 = 2.5 – 35% CPU
JFS = 3.1 – 35% CPU
búsqueda de archivos:
ReiserFS = 0.8 – 36% CPU
XFS = 2.8 – 10% CPU
Ext3 = 4.6 – 6% CPU
JFS = 5 – 6% CPU
Conclusión: Los resultados sugieren que, para estas tareas, los sistemas de archivos se puedan reagrupar como (a) rápidos y mas consumo de CPU (ReiserFS y XFS) o (b) más lento pero menos consumo de CPU (ext3 y JFS). XFS aparece como un buen compromiso, con resultados relativamente rápidos, el uso moderado de la CPU.
CONCLUSIÓN TOTAL
Estos resultados repliegan observaciones anteriores de Piszcz (2006) sobre la capacidad de disco reducida de Ext3, un tiempo más largo del montaje de ReiserFS y una creación más larga del FS de Ext3. Por otra parte, como este informe, ambas revisiones han observado que JFS es el de menor consumo de CPU. Finalmente.
Mientras que reconoce los méritos relativos de cada sistema de archivo, solamente un sistema de archivo puede ser instalado para cada partición/disco. De acuerdo con todas la pruebas realizadas para este ensayo de benchmark, XFS parece ser el sistema de archivo más apropiado a instalar en un servidor de archivo para las necesidades del hogar o de PYME.
El articulo original se encuentra en http://www.debian-administration.org/articles/388
Como un tip adicional les puedo comentar que he visto inconvenientes para que LILO o GRUB se pueda instalar en particiones XFS así que es recomendable crear una partición /boot de tipo Ext3.