2009-07-29 10 views

Respuesta

15

herramienta: fio

enlace: http://freshmeat.net/projects/fio/

prueba de disco físico IO:

./fio examples/disk-zone-profile 

conjunto de parámetros: r secuencial/w: RW = leer o rw = escribir aleatorio r/w: rw = randread o rw = randwrite

32

IO y el sistema de referencia de sistemas de archivos es un tema complejo. Ninguna herramienta única de evaluación comparativa es buena en todas las situaciones. He aquí una pequeña reseña acerca de las diferentes herramientas de evaluación comparativa:

bloque de almacenamiento:

  • IOMeter - Altamente personalizable y permite coordinar varios clientes. Necesita una PC con Windows para la aplicación de coordinación. Desarrollado por Intel. En Linux, tome tasas máximas de antigüedad (al menos 2006.07.27 y anteriores) con una pizca de sal porque el método de envío no fue óptimo.

File System (sintético):

  • FFSB - Flexible sistema de archivos de referencia. Comparativa muy clara para Linux. Buena personalización de la carga de trabajo. La evaluación comparativa de NFS (net-ffsb) es poco sólida.
  • Filebench - Extremadamente potente, pero desarrollado originalmente para Solaris. El soporte de Linux no es bueno.
  • sysbench - Principalmente una herramienta de evaluación comparativa de bases de datos, pero también una herramienta básica de evaluación comparativa del sistema de archivos.
  • bonnie - Parece ser obsoleto.
  • bonnie++ - C++ puerto de bonnie. Fácil, pero parece no ser muy personalizable.

sistema de archivos (carga de trabajo):

  • Matasellos - Simula el comportamiento IO de un servidor de correo. Demasiado pequeño para estresar a los buenos sistemas IO.

Stony Brook University e IBM Watson laboratorios han publicado un artículo de revista muy recomendable en el "Transaction of Storage" las pruebas de rendimiento del sistema de archivos, en el que se presentan diferentes puntos de referencia y sus puntos fuertes y débiles: A nine year study of file system and storage benchmarking. El artículo señala claramente que los resultados de la mayoría de los puntos de referencia son al menos cuestionables.


Una nota: se cuenta la programación pregunta? Quizás no, pero tal vez lo sea. Paso mucho tiempo evaluando el rendimiento IO de los sistemas que desarrollo. Al menos para mí, las preguntas sobre cómo hacer una evaluación comparativa de estas cosas están muy relacionadas con la programación. Por favor: No cierre todas las preguntas que no estén relacionadas con el desarrollo/programación desde su punto de vista. El punto de vista de otros desarrolladores puede ser diferente.

+1

+1 - Buena lista de herramientas y el documento Transacciones en almacenamiento es una buena referencia. Otra herramienta potencialmente útil para las pruebas de sistema de archivos basadas en red (es decir, NFS) es fstress: http://www.cs.duke.edu/ari/fstress/ –

3

necesita especificar lo que está probando, de lo contrario los puntos de referencia solo inducirán a error. Hay diferentes aspectos del rendimiento de E/S que debe elegir para optimizar, y diferentes parámetros con los que jugar.

Sus parámetros del sistema:

  1. dispositivo de almacenamiento: HDD, SSD (¿cuál?), Raid (que?)
  2. sistema de archivos, tamaño de bloque, el modo de diario
  3. archivo de caché, umbrales sucios, cantidad de la memoria
  4. IO planificador, sus sintonizables
  5. número de CPU
  6. versión del núcleo

Sus parámetros de prueba:

  1. de lectura o escritura de rendimiento?
  2. secuencial o aleatorio?
  3. 1 ¿thread o multiple?
  4. tamaño de las solicitudes
  5. optimizar el rendimiento o solicitar el retraso?
3

Hay un excelente programa para probar el almacenamiento de bloque IO en Unix llamado IORATE. Puede obtener una copia en iorate.org.

Puede generar IO mixto complejo, incluida la reutilización (visitas) y las zonas calientes para pruebas de almacenamiento en niveles.

+0

iorate.org parece fuera de línea, sin embargo, las descargas están todavía disponibles en https: //sites.google.com/site/vwiorate/home – Stickley

6
dd if=/dev/sda of=/dev/null 

Deje que se ejecute durante unos minutos y ciérrelo con Ctrl + C. Imprimirá la velocidad de transferencia de lectura de su unidad/controlador. Esta es la velocidad de lectura máxima que puede obtener de su unidad.

3

sysbench

Ver http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench

Ejemplo

sysbench --test=fileio --file-total-size=150G prepare 

sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run 

También puede probar la CPU, la memoria, hilos, y el rendimiento del servidor de base de datos,

Es impresionante.

O pruebas de software escrito en Java: http://www.dacapobench.org/

7

si necesita una forma rápida y sin tener que instalar nada.Este es el método que utilizo para escritura prueba de velocidad:

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync 

Y la salida es algo como esto

[email protected]:/# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync 
16384+0 records in 
16384+0 records out 
1073741824 bytes (1.1 GB) copied, 4.86922 s, 221 MB/s 

también: borrar el archivo de prueba después de esto para recuperar el espacio extra usado

Algunas explicaciones:

bs = block size 
count = the no of blocks to be written 

Ajuste estos parámetros para cambiar el tamaño del archivo escrito según las especificaciones del servidor y la cantidad de tiempo que desea dedicar a la escritura.

la velocidad de lectura según lo sugerido ya por gtsouk, se puede comprobar utilizando/dev/null como salida.

+1

¡no te olvides de hacer la prueba de sudo cuando hayas terminado! –

Cuestiones relacionadas