Optimizando el sistema de archivos EXT3 en CentOS
Ext3 es un sistema de archivos muy capaz con excelente tolerancia a los fallos y una larga trayectoria mostrando su estabilidad. Aunque funciona bien, no es el sistema de archivos más rápido que existe. Hay algunas cosas que usted puede hacer para darle una promoción a ext3 en los casos que desee más velocidad.
|
ATENCIÓN: Algunos de los métodos que listamos aquí reducirán la información guardada sobre el sistema de archivo a modo de intercambio para ganar velocidad. No todos los usuarios verán las ganancias de estos métodos, debido a que esto realmente depende en el tipo de acceso de entrada y salida que usted tenga. Por favor, tómese algún tiempo para identificar los requisitos de entrada y salida a disco antes de intentar los métodos de optimización siguientes. |
1. Opciones de Montaje
1.1. noatime
Esta opción es una de las formas de obtener el desempeño de ganancias más rápido y sencillo. Esta opción de montaje nos dice que el sistema no actualizará los tiempos de acceso del inodo. Es una buena opción para los servidores Web, servidores de noticia y otros usos de gran acceso al sistema de archivos. Por ejemplo:
/dev/VolGroup00/LogVol00 / ext3 defaults,noatime 1 1
1.2. commit
Esta es la opción del sistema de archivo que controla cuan a menudo se le dice al sistema de archivos que sincronice (sync) los datos y metadatos. El valor predeterminado es 5 segundos, pero usted puede extender esto para ganar en desempeño. Como resultado si su sistema se bloquea o pierde el suministro de energía sin haber escrito los datos, usted podría perder los valores de los datos de ese momento. El valor que usted fije en esta opción establecerá el desempeño de su sistema.
/dev/VolGroup00/LogVol00 / ext3 defaults,commit=120 1 1
1.3. data
Esta tiene tres opciones separadas para escoger. Cuando otros sistemas del tipo journal como XFS y JFS escriben metadatos a el disco, ellos simplemente hacen eso. Ext3 hace un poco más para proteger sus ficheros y escribe los datos asociados con un metadato predeterminado. Esta es básicamente la idea detrás del método 'data=ordered' que escribe al sistema de archivos antes de aplicar el journal.
Para hacer que ext3 se comporte como XFS y otros sistemas de archivos, fije 'data=writebak' en sus opciones de montaje. El modo writeback no preserva el ordenamiento de los datos cuando se escribe a disco, así la confirmación al journal puede suceder antes que se escriba al sistema. Aunque este método no es tan neurótico en cuanto a la protección de sus datos como lo es la opción que viene de forma predeterminada, es más rápido porque solo se aplica el journal a los metadatos.
La última opción, journal, es completamente lo opuesto a la opción ordered, forzando la escritura de los datos a el journal primero y luego al sistema de archivos. Este modo es usualmente el más lento pero puede resultar conveniente sobre el resto de las opciones en algunos casos limitados en los cuales necesita leer y escribir en el disco al mismo tiempo. Como todo, otras personas no tienen exactamente sus mismas necesidades, así sus acotes son una guía, no una regla. Experimente y vea cuales son las opciones que resultan mejor para usted:
/dev/VolGroup00/LogVol00 / ext3 defaults,data=writeback 1 1
2. Elevadores de disco
CentOS-4 tiene 4 elevadores de disco (disk elevators), que existen para minimizar las búsquedas del cabezal reordenando y uniendo las peticiones de lectura o escritura de datos de las áreas comunes del disco. Estas opciones ofrecen aumentos en el desempeño pero las promociones de velocidad pueden que no sean tan pronunciadas en sistemas usando RAID, debido a que ellos no toman en cuanta el 'spindle striping'.
Una buena explicación de las opciones Elevator puede encontrarlas en la Revista de Redhat de Junio del 2005.
3. Raid Math
El mayor desempeño de ganancia que puede obtener en un arreglo raid es comprobando que haya formateado el volumen alineado al tamaño de su banda raid. Esto es referenciado como zancada (stride). Fijando el sistema de archivos en tal forma que las escrituras coincidan con el plano raid, usted evita la superposición de los cálculos y ajustes en el sistema de archivos y le hace más fácil al sistema escribir en el disco. El resultado red es que su sistema de archivo está disponible para escribir más rápido y obtener un mejor desempeño. Para comprender como la zancada math (stride math) funciona actualmente, usted necesita conocer un par de cosas sobre la configuración que está usando:
- Tipo de RAID que esta usando (RAID 0,1,5,10 etc).
- El número de discos en el arreglo.
- El tamaño chunk del arreglo RAID.
- El tamaño de bolque del sistema de archivos (4k de bloques para ext3 por ejemplo).
El cálculo del manejador funciona de la siguiente forma: Tome el número de discos y multiplíquelo por el tamaño chunk del arreglo raid. Esto le dará el tamaño de la zancada. Luego tome el tamaño de la zancada y divídalo entre el número de bloques de su sistema de archivos. Esto le da el valor de zancada a utilizar cuando formatee el volumen. Esto puede ser un poco complejo, así que veamos algunos ejemplos a continuación:
Por ejemplo si usted tiene un raid 5 de 4 torres y está usando 64K de chunks, su tamaño de zancada es 256K. Dado un tamaño bloque de 4K para el sistema de archivos entonces tiene una banda de 64 (256/64). Si fuese un RAID0 de 4 discos, entonces sería 64 (4x64k/4k=64). Si este es un arreglo RAID10 de 4 discos, entonces sería 32 ((4/2)*64/4k=32).
Cuando usted crea una partición ext3 de esta forma, usted puede formatearla de la siguiente forma:
mkfs.ext3 -E stride=64 -O dir_index /dev/XXXX
El dir_index listado arriba es el último pellizco mencionado aquí. La opción dir_index le permite a ext3 utilizar hashes b-trees para aumentar la velocidad de búsquedas en directorios largos. No es una gran ganancia pero ayudará.