12 votos

Optimización de Linux en el disco de almacenamiento en caché de comportamiento para el máximo rendimiento

Estoy corriendo en un rendimiento máximo de la cuestión aquí y necesitas asesoramiento sobre la manera de sintonizar mi perillas. Estamos ejecutando un 10Gbit servidor de ficheros para la distribución de copias de seguridad. Es una de dos discos S-ATA2 la instalación de un Controlador LSI MegaRAID. El servidor también tiene 24gig de la memoria.

Tenemos una necesidad para el espejo de nuestro pasado cargado de copia de seguridad con el máximo rendimiento.

El RAID0 para nuestro "caliente" copias de seguridad nos da alrededor de 260 MB/s de escritura y 275 MB/s de lectura. Una prueba tmpfs con un tamaño de 20 GB nos da alrededor de 1 gb/seg. Este tipo de rendimiento es lo que necesitamos.

Ahora, ¿cómo puedo ajustar el subsistema de memoria virtual de Linux para almacenar en caché los últimos archivos subidos por el mayor tiempo posible en la memoria sin necesidad de escribir a disco (o mejor aún: de la escritura a disco Y mantener en la memoria)?

Yo instalación de los siguientes sysctls, pero ellos no nos dan el rendimiento que esperamos:

# VM pressure fixes
vm.swappiness = 20
vm.dirty_ratio = 70
vm.dirty_background_ratio = 30
vm.dirty_writeback_centisecs = 60000

Esto debería , en teoría, nos dan de 16 gb para el almacenamiento en caché de e/S y esperar algunos minutos hasta que su escritura a disco. Aún cuando puedo referenciar el servidor veo ningún efecto sobre la escritura, el rendimiento no aumentar.

Ayuda o asesoramiento necesario.

6voto

the-wabbit Puntos 28168

Por la mirada en las variables que hemos establecido, parece que están más preocupados con el rendimiento de escritura y no se preocupan por las posibles pérdidas de datos debido a cortes de energía.

Usted sólo tendrá siempre la opción de escrituras diferidas y el uso de una caché de escritura con escritura asincrónica operaciones. Sincrónica de las operaciones de escritura requieren de comprometerse a disco y no ser perezoso-por escrito - de los siglos. El sistema de ficheros que podría ser la causa frecuente de la página vacía y sincrónica escribe (normalmente debido a la journalling, especialmente con ext3 en el modo data=journal). Además, incluso en el "fondo" de la página vacía va a interferir con el sin almacenar en caché las lecturas y escrituras sincrónicas, por lo tanto disminuir la velocidad.

En general, usted debe tomar algunas medidas para ver lo que está sucediendo - ¿ves a tu proceso de copia de poner en "D" estado de espera por e/S de trabajo a realizar por los pdflush? ¿Ves pesado sincrónico de la actividad de escritura en los discos?

Si todo lo demás falla, usted puede elegir para configurar una explícita tmpfs sistema de ficheros donde copiar las copias de seguridad y sincronizar los datos con sus discos después del hecho - incluso de forma automática utilizando inotify

Para el almacenamiento en caché de lectura de las cosas son mucho más sencillas - no es el fcoretools fadvise utilidad que tiene la --willneed parámetro para asesorar el kernel para cargar el contenido del archivo en la caché del búfer.

Editar:

vm.dirty_ratio = 70

Esto en teoría debería darnos 16 GB para el almacenamiento en caché de e/S y esperar un poco minutos hasta que su escritura a disco.

Esto no habría influido enormemente en su escenario de la prueba, pero hay un concepto erróneo en su comprensión. El dirty_ratio parámetro no es un porcentaje de su sistema total de memoria, sino de su sistema libre de memoria.

Hay un artículo sobre Optimización para Escribir-cargas Pesadas con mayor profundidad de la información.

3voto

Tina Puntos 21

O simplemente obtener más discos... La unidad de la matriz de configuración no admite el largo que necesite. Este es un caso en el que la solución debe ser rediseñado para satisfacer sus necesidades reales. Entiendo que esto es sólo la copia de seguridad, pero tiene sentido para evitar un desacoplados revisión.

1voto

Peter Senna Puntos 429

El uso de la memoria caché puede implicar la pérdida de datos como si algo sale mal los datos que están en la memoria y no se guardan en los discos será perdido.

Dicho esto, hay optimización que se realiza en el sistema de archivos de nivel.

Por ejemplo, Si estás usando el sistema de archivos ext4, puede probar con la opción de montaje:

barrera=0

Que: "desactiva el uso de la escritura en las barreras jbd código. Escribir las barreras de hacer cumplir la correcta en el disco de ordenamiento de la revista se compromete, lo volátil de escritura de disco cachés de seguro de usar, en algunos penalización de rendimiento. Si los discos de seguridad de la batería de una manera o de otra, la desactivación de las barreras de seguridad puede mejorar el rendimiento. Las opciones de montaje "barrera" y "nobarrier" también puede ser utilizado para activar o desactivar las barreras, para mantener la coherencia con otros ext4 opciones de montaje."

Más información en: http://www.mjmwired.net/kernel/Documentation/filesystems/ext4.txt

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: