# [OT] Benchmark de sistemas de ficheros (abierto)

## aj2r

Tengo la intención de hacer algunas pruebas a diferentes sistemas de ficheros (ext2, ext3, reiserfs, reiser4, jfs, xfs), ¿conocéis alguna aplicación que me permita medit el tiempo y uso de CPU que hace una operación sobre un sistema de ficheros? Tenía pensado probar bonnie++ y ver si me sirve para lo que quiero, pero me da un error al compilar (bon_io.cpp: In member function `int CFileOp::seek(int, int)': Error interno del compilador: Error al reportar rutinas reentradas.). Gracias de antemano

----------

## LinuxBlues

Para ver el rendimiento de los sistemas de ficheros es mejor bonnie que bonnie++, por mi experinecia, aunque bonnie++ me ha dado el mismo error que comentas. Deberías enviar un bug-report.

Muy importante: con bonnie cambia el tamaño de los ficheros de prueba, por defecto son 100Mb. No te canses de hacer pruebas con varios tamaños.

Por último, yo también hice pruebas y si puedo hacerte una recomendación es que nunca guardes información de vital importancia en las particiones en las que te encuentres haciendo pruebas. Yo hice lo que no debía, aunque con partimage y dolphin no tuve problemas para restaurar sistemas de ficheros, pero cuidado, XFS o JFS no están del todo soportados y haz copias de seguridad con tar.

He estado mirando los resultados que obtuve, y con JFS tuve un kernel panic y fui incapaz de reiniciar satisfactoriamente, habían desaparecido muchos ficheros en init.d

Me encanta JFS, de hecho si fuera algo más maduro sería el que usaría sin lugar a la menor duda, lástima que tuviera un tainted kernel y mis informes acerca del panic no sirvieran de nada.

Si te decides a hacer pruebas en serio: mucho cuidado, no uses un tainted kernel para que puedan hacerle caso a tus informes de fallos.

Suerte, esperemos que jfsutils se actualice debidamente y que pronto tengamos un JFS estable y sólido, fue el único que aprobó con nota, de no haber tenido el panic   :Crying or Very sad: 

Editado: Por cierto, que si te creas un script para hacer los tests, ya verás que el resultado depende de la controladora y del grado de soporte que tenga y sorprendentemente del disco duro. Dos discos duros en el mismo sistema pueden dar resultados muy diferentes, imagino que por el tipo de cache, pero esto me sorprendió mucho.Last edited by LinuxBlues on Tue Jun 20, 2006 4:14 pm; edited 1 time in total

----------

## aj2r

Bueno, en la página de bonnie++ he visto esto:

 *Quote:*   

> New experimental releases, not for serious use

 

que corresponde a la versión que hay en portage, así que me he hecho un ebuild para la 1.0.3a y ya lo tengo, ha compilado sin problemas  :Very Happy: 

LinuxBlues por supuesto ya me he hecho una partición a parte, no tengo ganas de perder mis datos, no se me ha io la cabeza todavía  :Laughing:  y por cierto, ¿por qué dices que mejor con bonnie que con binnie++?

EDITO-> ¿Qué fuentes del núcleo me recomendáis para hacer las pruebas (por supuesto me hace falta que tenga soporte para todos los sistemas de ficheros mencionados)? ¿O me recomendáis que parchee las fuentes vanilla?.

----------

## LinuxBlues

 *aj2r wrote:*   

> LinuxBlues por supuesto ya me he hecho una partición a parte, no tengo ganas de perder mis datos, no se me ha io la cabeza todavía  y por cierto, ¿por qué dices que mejor con bonnie que con binnie++?

 

 *Quote:*   

> 
> 
> eix bonnie
> 
> * app-benchmarks/bonnie++
> ...

 

Imagino que los cuellos de botella pueden deberse a otras muchas cosas, como el soporte de la controladora y demás, a mí lo que me interesaba era ver el rendimiento de los sistemas de ficheros usando las llamadas estándar de las librerías C. Ese es el motivo.

 *aj2r wrote:*   

> EDITO-> ¿Qué fuentes del núcleo me recomendáis para hacer las pruebas (por supuesto me hace falta que tenga soporte para todos los sistemas de ficheros mencionados)? ¿O me recomendáis que parchee las fuentes vanilla?.

 

Hmmm, yo usé las gentoo-sources por aquel momento, aunque quizá sería buena idea usar las vanilla sin parches, pero me da mucha pereza ponerme de nuevo manos a la obra   :Smile: 

----------

## aj2r

Pues creo que me voy a decidir por bonnie++ porque permite un mayor número de pruebas diferentes. bonnie sólo deja elegir el tamaño de los ficheros, mientras que bonnie++ :

 *Quote:*   

> 
> 
>        -s     the   size  of  the  file(s)  for  IO  performance  measures  in
> 
>               megabytes. If the size is greater than 1G  then  multiple  files
> ...

 

----------

## aj2r

Evaluación de Sistemas de Ficheros en Linux A ver que os parece   :Wink:   y si me podéis echar una mano con las conclusiones   :Laughing: 

----------

## pacho2

Eres un experto  :Smile: , ya tienes dos huecos en mis bookmarks  :Wink: 

Saludos y gracias

__________

Una cosa: ¿que entiendes por "journaling"? Creo que tanto XFS como JFS tienen journaling...

----------

## aj2r

 *pacho2 wrote:*   

> Eres un experto , ya tienes dos huecos en mis bookmarks 
> 
> 

 

 :Cool:   Bueno, a ver cuando tengo tiempo y hago algo mejor   :Laughing:  De todas formas, también cuando tenga tiempo, tengo intención de poner todo ésto en gentoo-es   :Very Happy: 

 *Quote:*   

> 
> 
> Una cosa: ¿que entiendes por "journaling"? Creo que tanto XFS como JFS tienen journaling...

 

Quizás lo he expresado mal, debiera haber puesto Data Journaling. Si miras la tabla, si que les he puesto que tienen journaling, pero sólo de los metadatos.

De todas formas, si me equivoco, se agradecen las correcciones   :Wink: 

----------

## gringo

interesante, gracias  :Very Happy: 

Tengo entendido que sobre todo los sistemas reiser* trabajan mejor con el planificador AS, al menos de reiser4 estoy casi seguro.

Aqui tb. hay unos parches para ext3 por si quieres juguetear un poco mas  :Wink: 

http://www.bullopensource.org/ext4/index.html

saluetes

----------

## LinuxBlues

¿Qué le ha ocurrido a ext2 en seq_del (borrado secuencial)? ¿Es inmediato?

En Datos combinados (Tiempo   %CPU) cambias los colores a jfs y ext3 ¿es por algún motivo?

A propósito, si me permites una sugerencia, podrías elegir colores más básicos o más distinguibles. En algunas de las gráficas en 3D, cuesta mucho distinguir (al menos a mí) qué corresponde a qué realmente. (Estaría bien que metieses en un tarball las gráficas ampliadas, si lo de pinchar en un gráfico para que se vea ampliado te complica demasiado las cosas).

En líneas generales confirmas la opinión que tenía al respecto: reiser4 es algo a evitar, claramente, aunque es todavía algo muy experimental; y jfs es muy bueno (sigue siendo uno de mis preferidos); ext3 es un todo-terreno y sólido como una roca y xfs sigue sin convencerme, debido a las desastrosas pérdidas de ficheros.

Por cierto, ¿son pruebas con la creación del sistema de ficheros estándar? es decir, has añadido -O dir_index en los que lo permiten? ext3 incrementa su rendimiento exponencialmente con hashed b-trees. Supongo que no has añadido opciones al formatear; de cualquier forma sería buena idea que las indicases en las pruebas (o que los has creado de forma estándar si es el caso). También si has incluído algún tipo de parámetro data= y ver las opciones que te daba dmesg al montarlos, básicamente porque eso influye mucho: ext3 requiere data=writeback para hacer un journaling únicamente de metadatos y si te aparece

 *Quote:*   

> SistemaDeFicheros: hdaX: using ordered data mode

 

piensa que estás forzando a los sistemas de ficheros con journaling únicamente de metadatos a meter datos también en el journal.

A mí jfs me petó y me dió un oops (kernel panic) desconectando una tarjeta pcmcia mientras apagaba el sistema y también con dispositivos USB. ¿Te importaría hacer algunas pruebas con ello? No sé porqué estoy enamorado del sistema de ficheros de IBM... [opinión] Viendo sus resultados y haciendo una media, junto con los demás sistemas de ficheros, es el que mejor me parece [/opinión] en líneas generales.

Sin embargo hay algo que me llama mucho la atención, los autores de ricerfs dicen que todos los sistemas de ficheros siguen una evolución, cuando ellos prefieren la revolución... ext3 es una evolución de ext2, algo así como jfs de hpfs, aunque de forma muy distinta.

El tail packing de ricerfs, estooo reiserfs... me hace optar por el mismo en algunos casos. Si los de IBM creasen algo similar para jfs me pasaría a jfs sin dudarlo. Lamentablemente ahora sólo lo uso en particiones de datos.

Pero bueno, time will tell, estoy convencido de que es sólo cuestión de tiempo que me pase a jfs por completo.

----------

## aj2r

 *gringo wrote:*   

> 
> 
> Tengo entendido que sobre todo los sistemas reiser* trabajan mejor con el planificador AS, al menos de reiser4 estoy casi seguro.
> 
> Aqui tb. hay unos parches para ext3 por si quieres juguetear un poco mas 
> ...

 

De momento voy a corregir lo que ya tengo, y en cuanto tenga tiempo (acabe los examenes   :Crying or Very sad:  ) haré unas pruebecillas más  :Very Happy: 

 *LinuxBlues wrote:*   

> ¿Qué le ha ocurrido a ext2 en seq_del (borrado secuencial)? ¿Es inmediato?
> 
> 

 

Pues algo parecido, si el test termina en menos de 500ms, bonnie++ muestra "++++" en el resultado ya que el autor dice que por errores de redondeo el resultado no puede ser calculado correctamente, así que no muestra datos erróneos. Un fallo por mi parte no explicar esto :p

 *LinuxBlues wrote:*   

> 
> 
> En Datos combinados (Tiempo   %CPU) cambias los colores a jfs y ext3 ¿es por algún motivo?
> 
> 

 

Otra cosa que se me ha olvidado explicar   :Laughing:  Es simplemente porque con el orden que estaba usando hasta ese momento, no era posible ver medio decentemente los resultados en la gráfica, ya que se tapan los unos a los otros. Y también porque no soy muy bueno con oomath2   :Embarassed: 

 *LinuxBlues wrote:*   

> 
> 
> Por cierto, ¿son pruebas con la creación del sistema de ficheros estándar? es decir, has añadido -O dir_index en los que lo permiten? ext3 incrementa su rendimiento exponencialmente con hashed b-trees. Supongo que no has añadido opciones al formatear; de cualquier forma sería buena idea que las indicases en las pruebas (o que los has creado de forma estándar si es el caso). También si has incluído algún tipo de parámetro data= y ver las opciones que te daba dmesg al montarlos, básicamente porque eso influye mucho: ext3 requiere data=writeback para hacer un journaling únicamente de metadatos y si te aparece
> 
>  *Quote:*   SistemaDeFicheros: hdaX: using ordered data mode 
> ...

 

Ha sido creación estándar, para todos un simple 

```
mkfs.<sistema de ficheros> /dev/hdaX
```

 *LinuxBlues wrote:*   

> 
> 
> A mí jfs me petó y me dió un oops (kernel panic) desconectando una tarjeta pcmcia mientras apagaba el sistema y también con dispositivos USB. ¿Te importaría hacer algunas pruebas con ello? No sé porqué estoy enamorado del sistema de ficheros de IBM... [opinión] Viendo sus resultados y haciendo una media, junto con los demás sistemas de ficheros, es el que mejor me parece [/opinión] en líneas generales.
> 
> 

 

Como he dicho a gringo en cuanto tenga tiempo haré más pruebecillas.

Por lo visto me pudo el entusiasmo y me ha faltado comentar un par de cosillas en mis pruebas   :Embarassed:  Pero ahora mismo lo soluciono   :Very Happy: 

Gracias por vuestros comentarios  :Wink: 

----------

## Ferdy

Para probar el rendimiento _REAL_ de los sistemas de ficheros y evitar el 'overhead' de CPU / tiempo causado por los algoritmos de planificación deberías utilizar el planificador No-Op. Que aunque no es un No-Op real, se aproxima mucho.

Los números en frío dicen muy poco... quizá deberías explicar la tabla 'Políticas de asignación y disposición' algunas pueden incurrir en un mayor uso de la CPU para ofrecer otras ventajas. Y por supuesto introducir el ext3 con dir_index (como ya te han apuntado), pero como un FS más, distinto de ext3 (sin dir_index se entiende).

No se muy bien cómo has hecho los tests, pero deberías reiniciar entre cada test para evitar que las distintas cachés favorezcan a algunos sistemas de ficheros. Además, en los tests ran_* habría que saber cuántos fallos de página ocurrieron durante cada uno de los tests para poder comparar los números de todos los sistemas de ficheros a la vez. (Editado: Además estaría bien saber cuantos fallos de TLB hubo... pero no tengo muy claro que se pueda conocer ese dato desde el espacio de usuario).

Por lo demás me parece que va bastante bien encaminado y que con algo más de trabajo, será excelente.

Un saludo y 'keep up the good work'.

- ferdy

----------

## LinuxBlues

 *aj2r wrote:*   

> 
> 
>  *LinuxBlues wrote:*   
> 
> En Datos combinados (Tiempo   %CPU) cambias los colores a jfs y ext3 ¿es por algún motivo?
> ...

 

Ah, muchas gracias por la explicación, tanto por esta como por la de ext2.

 *aj2r wrote:*   

> 
> 
> Ha sido creación estándar, para todos un simple 
> 
> ```
> ...

 

Perfecto, sigue así, si empiezas con optimizaciones en las opciones, como Ferdy te sugiere, (yo sólo lo preguntaba porque quería asegurarme), empezarás con la historia interminable, tipo añadir la opción de montaje orlov a ext2 y sin ella (la tengo en todas mis particiones ext2), tipo ir incrementando el valor commit=X a las opciones de montaje de ext3, porque con un commit alto y dir_index, ext3 literalmente vuela; por cierto, ext3 usa orlov como block allocator por defecto, mientras que ext2 no y suelo añadírselo...

A lo que iba, que como te pongas a jugar con opciones, no vas a parar, yo dejé de hacer pruebas con bonnie por esto, porque llegó un momento en que vi que sólo utilizaba el ordenador para hacer benchmarking, ya sabes que los tests con los sistemas de ficheros deben ser en single y deberían ser monotarea...

Paciencia y mucha dedicación, estás realizando un muy buen trabajo.

Editado: ah y porfa, usa los colores del arco iris   :Wink: 

----------

## aj2r

Ya he corregido las cosas que apuntábais y he añadido un poco más de texto, en cuanto tenga tiempo tengo intención de probar resierfs con notail, ext3 con -O dir index y cualquier otra sujerencia que me hagáis  :Wink: 

----------

## Paulinuks

Muy interesante el análisis, aj2r. Claro y conciso. 

Gracias

----------

## pacho2

Aqui hay mucha gente que parece que controla mucho este tema. Podrían hacer algun pequeño manual en el que hablasen de las opciones para crear y montar las particiones. 

Yo, en concreto, uso reiserfs   :Cool:   Pero información sobre otros no estaría de mal

PD: Que conste que no pretendo ordenaros que lo hagáis, sólo es una sugerencia  :Smile: 

----------

## aj2r

 *pacho2 wrote:*   

> Aqui hay mucha gente que parece que controla mucho este tema. Podrían hacer algun pequeño manual en el que hablasen de las opciones para crear y montar las particiones. 
> 
> Yo, en concreto, uso reiserfs    Pero información sobre otros no estaría de mal
> 
> PD: Que conste que no pretendo ordenaros que lo hagáis, sólo es una sugerencia 

 

Yo de momento he hecho estas pruebas (que pienso ampliar un poco), ahora a ver si alguien se anima a hacer lo que sugiere pacho2, que podría ser el mismo   :Wink:  con la colaboración de la comunidad, habre un hilo nuevo y empiézalo, y ya irá surgiendo quien te dé información para ir completándolo.

----------

## pacho2

Pero yo en este tema estoy muy verde, y hablar de lo que no sé me parece mal   :Embarassed: 

Lo unico que tengo de "especial" (entre comillas) es que monto las partiociones con la opción noatime   :Embarassed:   (y, por supuesto, no añado "notail" al fstab, esto sólo es necesario cuando /boot esta en una particion reiserfs y se usa lilo, con grub no hay problema)

Saludos y gracias

_________

https://forums.gentoo.org/viewtopic-t-474716.html

----------

## aj2r

 *pacho2 wrote:*   

> Pero yo en este tema estoy muy verde, y hablar de lo que no sé me parece mal   

 

No digo que hables sin saber, digo que esto es un foro y aunque no sepas, basta con que lo inicies y entre todos ya iremos compartiendo y discutiendo, así dejaremos de estar verdes   :Laughing:  Que aunque estés verde siempre hace falta alguien que comience y organice, y así dejemos de estar verdes   :Laughing: 

----------

## pacho2

Muchas gracias  :Smile: 

he abierto el hilo, de momento hay poco (más bien nada), pero me iré documentando

Saludos

----------

## aj2r

Pues mis pruebas son un aprobado raspado para uno de mis profesores, dice que me ha aprobado porque es un trabajo original XD

Supongo que trendré que mejorarlo y a mi profesor que le den   :Twisted Evil: 

EDITO-> A éste le ha puesto un 9 casi 10 XD yo flipo (a to esto perdón por esta entrada en el foro)

----------

## LinuxBlues

Hace un tiempo recibí un mensaje privado de pacho2 comentándome cosas acerca de su artículo [HOWTO] Optimizando particiones y se me pasó por la cabeza que junto con el suyo añadieses este benchmark y que creeis un artículo acerca de los sistemas de ficheros, cuando menos en la sección articles, del GDP; en más de una ocasión he visto a gente preguntando por el sistema de ficheros a optar en #gentoo y es una de las preguntas que más se hacen a la hora de instalar, por lo que creo que un artículo como el vuestro, si seguís profundizando un poco, seguramente llegue a ser uno de los más consultados.

Tampoco es que os pongais en plan enciclopedia, pero si pacho2 profundiza un poco más y tú aj2r incluyes también vfat en tus pruebas (no olvides que mucha gente lo usa para compartir datos), creareis un extraordinario documento del que el GDP carece, poneros en contacto con YosWinK (aunque eso sí, no abuseis de su tiempo, dado que es un recurso muy limitado.)

Por mencionar un ejemplo, Configurando localización en Gentoo Linux fue un documento que empezó a redactarse en alemán, después lo tradujeron a inglés y posteriormente al resto de idiomas, no veo porqué vuestro documento en un perfecto español no podría seguir la misma trayectoria.

Creo que esto de los sistemas de ficheros debería haberse tratado con mayor detenimiento en una distribución tan especial y con unas características tan peculiares como Gentoo, por lo menos para mí lo ha sido. 

____________

Por cierto aj2r, ¿qué tal las pruebas con nolargeio=1 en reiserfs? yo lo uso desde que creo las particiones, jamás se me ha ocurrido usarlo y luego no usarlo por si se arma un lío con bloques de 128K y 4K mezclados por ahí, sería buena idea hacer pruebas con ello, o si tienes un script pásamelo y me pongo a probar...

----------

## aj2r

Pues he hecho pruebas con largeio por un lado y con notail por otro, y los dos me han dejado un poco frío   :Confused: 

En cuanto haya hecho las gráficas os lo pasaré, pero no hay mejoras apreciables con respecto a los valores por defecto, incluso en algunas pruebas empeora.

Por cierto, a mí al dar formato a las particiones Reiserfs me dice:

 *Quote:*   

> Blocksize: 4096

  no 128kB   :Question: 

----------

## pacho2

 *aj2r wrote:*   

> Pues mis pruebas son un aprobado raspado para uno de mis profesores, dice que me ha aprobado porque es un trabajo original XD
> 
> Supongo que trendré que mejorarlo y a mi profesor que le den  
> 
> EDITO-> A éste le ha puesto un 9 casi 10 XD yo flipo (a to esto perdón por esta entrada en el foro)

 

Quizas tu profesor tiene un lector LG   :Very Happy: 

----------

## seulBxuniL

 *aj2r wrote:*   

> Pues he hecho pruebas con largeio por un lado y con notail por otro, y los dos me han dejado un poco frío  
> 
> En cuanto haya hecho las gráficas os lo pasaré, pero no hay mejoras apreciables con respecto a los valores por defecto, incluso en algunas pruebas empeora.
> 
> Por cierto, a mí al dar formato a las particiones Reiserfs me dice:
> ...

 

nolargeio ha dejado de estar soportado a partir del 2.6.19; deben haberlo corregido de algún otro modo...

----------

## 0kupa

 *Quote:*   

> La principal novedad en Ext4 es Extent, o la capacidad de reservar un área contigua para un archivo; esto puede reducir y hasta eliminar completamente la fragmentación de archivos.

 

¿Alguna mejoría con ext4 para entornos de escritorio? ¿Extent se nota en algo?

----------

## pacho2

No sabía que reiser4 también tiene extend   :Shocked:  , lástima que sea demasiado cobarde como para probar reiser4 xD

Saludos y gracias por el link  :Smile: 

----------

