GNU/Linux >> Tutoriales Linux >  >> Linux

10 ejemplos de iozone para la medición del rendimiento de E/S de disco en Linux

Como discutimos en nuestro artículo de introducción al monitoreo del rendimiento de Linux, medir el rendimiento del subsistema IO es muy importante.

Si alguien se queja de que una base de datos (o cualquier aplicación) que se ejecuta en un servidor (con cierto sistema de archivos o configuración RAID) se ejecuta más rápido que la misma base de datos o aplicación que se ejecuta en otro servidor, es posible que desee asegurarse de que el rendimiento en el el nivel del disco es el mismo en ambos servidores. Puede usar iozone para esta situación.

Si está ejecutando su base de datos (o cualquier aplicación) en un entorno SAN o NAS determinado y desea migrarla a un entorno SAN o NAS diferente, debe realizar evaluación comparativa del sistema de archivos en ambos sistemas y compararlo. Puedes usar iozone para esta situación.

Si sabe cómo usar iozone, puede usarlo para varios propósitos de evaluación comparativa del sistema de archivos.

Descargar e instalar IOZone

Iozone es una utilidad de evaluación comparativa de sistemas de archivos de código abierto.

Siga los pasos a continuación para descargar e instalar iozone en su sistema.

wget http://www.iozone.org/src/current/iozone3_394.tar

tar xvf iozone3_394.tar 

cd iozone3_394/src/current

make

make linux

¿Qué mide la utilidad IOzone?

IOzone realiza los siguientes 13 tipos de prueba. Si está ejecutando la prueba iozone en un servidor de base de datos, puede concentrarse en las primeras 6 pruebas, ya que afectan directamente el rendimiento de la base de datos.

  1. Leer:indica el rendimiento de leer un archivo que ya existe en el sistema de archivos.
  2. Escribir:indica el rendimiento de escribir un archivo nuevo en el sistema de archivos.
  3. Volver a leer:después de leer un archivo, esto indica el rendimiento de volver a leer un archivo.
  4. Reescribir:indica el rendimiento de escribir en un archivo existente.
  5. Lectura aleatoria:indica el rendimiento de la lectura de un archivo al leer información aleatoria del archivo. es decir, esta no es una lectura secuencial.
  6. Escritura aleatoria:indica el rendimiento de escribir en un archivo en varias ubicaciones aleatorias. es decir, esta no es una escritura secuencial.
  7. Lectura hacia atrás
  8. Reescribir registro
  9. Lectura de pasos
  10. Fread
  11. Escribir
  12. Lectura gratuita
  13. Frescritura

10 ejemplos de IOZone

1. Ejecute todas las pruebas de IOZone usando valores predeterminados

-una opción significa modo automático. Esto crea archivos de prueba temporales de tamaños de 64k a 512 MB para pruebas de rendimiento. Este modo también usa de 4k a 16M de tamaños de registro para pruebas de lectura y escritura (más sobre esto más adelante).

-una opción también ejecutará los 13 tipos de pruebas.

$ ./iozone -a

La primera sección de la salida de iozone contiene la información del encabezado, que muestra información sobre la utilidad iozone y todas las opciones de iozone que se utilizan para generar este informe, como se muestra a continuación.

Iozone: Performance Test of File I/O
        Version $Revision: 3.394 $
	Compiled for 32 bit mode.
	Build: linux 

Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
             Al Slater, Scott Rhine, Mike Wisner, Ken Goss

Run began: Sat Apr 23 12:25:34 2011

Auto Mode
Command line used: ./iozone -a
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.

La segunda sección de la salida contiene los valores de salida (en por segundo) de varias pruebas.

  • 1ra columna KB:Indica el tamaño del archivo que se usó para la prueba.
  • Segunda columna reclen:indica la longitud del registro que se usó para la prueba.
  • 3ra columna hasta la última columna:Indica las diversas pruebas que se realizan y sus valores de salida en por segundo.
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  64       4  495678  152376  1824993  2065601 2204215  875739  582008   971435   667351   383106   363588  566583   889465
  64       8  507650  528611  1051124  1563289 2071399 1084570 1332702  1143842  2138827  1066172  1141145 1303442  2004783
  64      16  587283 1526887  2560897  2778775 2366545 1122734 1254016   593214  1776132   463919  1783085 3214531  3057782
  64      32  552203  402223  1121909  1388380 1162129  415722  666360  1163351  1637488  1876728  1685359  673798  2466145
  64      64  551580 1122912  2895401  4911206 2782966 1734491 1825933  1206983  2901728  1207235  1781889 2133506  2780559
 128       4  587259 1525366  1801559  3366950 1600898 1391307 1348096   547193   666360   458907  1486461 1831301  1998737
 128       8  292218 1175381  1966197  3451829 2165599 1601619 1232122  1291619  3273329  1827104  1162858 1663987  1937151
 128      16  650008  510099  4120180  4003449 2508627 1727493 1560181  1307583  2203579  1229980   603804 1911004  2669183
 128      32  703200 1802599  2842966  2974289 2777020 1331977 3279734  1347551  1152291   684197   722704  907518  2466350
 128      64  848280 1294308  2288112  1377038 1345725  659686 1997031  1439349  2903100  1267322  1968355 2560063  1506623
 128     128  902120  551579  1305206  4727881 3046261 1405509 1802090  1085124  3649539  2066688  1423514 2609286  3039423
...

2. Guarde la salida en una hoja de cálculo usando iozone -b

Para guardar la salida de iozone en una hoja de cálculo, use la opción -b como se muestra a continuación. -b significa binario e indica a iozone que escriba la salida de prueba en formato binario en una hoja de cálculo.

$ ./iozone -a -b output.xls

Nota:La opción -b se puede usar con cualquiera de los ejemplos mencionados a continuación.

A partir de los datos que se guardan en la hoja de cálculo, puede usar la función de gráfico de la herramienta de hoja de cálculo para crear algunos gráficos bonitos. El siguiente es un gráfico de muestra que se creó a partir de la salida de iozone.

Higo :gráfico IOZone

3. Ejecute solo un tipo específico de prueba usando iozone -i

Si está interesado en ejecutar solo un tipo específico de prueba, use la opción -i.

Sintaxis:

iozone -i [test-type]

El tipo de prueba es un valor numérico. Los siguientes son los distintos tipos de pruebas disponibles y su valor numérico.

  • 0=escribir/reescribir
  • 1=leer/releer
  • 2=lectura/escritura aleatoria
  • 3=Leer hacia atrás
  • 4=Re-escribir-registro
  • 5=lectura paso a paso
  • 6=escribir/reescribir
  • 7=leer/Volver a leer,
  • 8=mezcla aleatoria
  • 9=pwrite/Re-pwrite
  • 10=leer/Volver a leer
  • 11=pwritev/Re-pwritev
  • 12=preadv/Re-preadv

El siguiente ejemplo ejecutará solo las pruebas de escritura (es decir, tanto escribir como reescribir). Como puede ver en la salida, las otras columnas están vacías.

$ ./iozone -a -i 0
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  64       4  353666  680969                                                                                
  64       8  477269  744768                                                                                            
  64      16  429574  326442                                                                                            
  64      32  557029  942148                                                                                            
  64      64  680844  633214                                                                                            
 128       4  187138  524591

Combina varios tipos de pruebas de yozono

También puede combinar varios tipos de pruebas especificando múltiples -i en la línea de comando.

Por ejemplo, el siguiente ejemplo probará los tipos de prueba de lectura y escritura.

$ ./iozone -a -i 0 -i 1
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  64       4  372112  407456  1520085   889086                                                                          
  64       8  385574  743960  3364024  2553333                                                                          
  64      16  496011  397459  3748273  1330586                                                                          
  64      32  499600  876631  2459558  4270078

4. Especifique el tamaño del archivo usando iozone -s

De forma predeterminada, iozone creará automáticamente archivos temporales de tamaño de 64k a 512M, para realizar varias pruebas.

La primera columna en la salida de iozone (con el encabezado de columna KB) indica el tamaño del archivo. Como vio en la salida anterior, comienza con un archivo de 64 KB y seguirá aumentando hasta 512 M (duplicando el tamaño del archivo cada vez).

En lugar de ejecutar la prueba para todos los tamaños de archivo, puede especificar el tamaño del archivo con la opción -s.

El siguiente ejemplo realizará una prueba de escritura solo para un tamaño de archivo de 1 MB (es decir, 1024 KB).

$ ./iozone -a -i 0 -s 1024
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
1024       4  469710  785882                                                                                            
1024       8  593621 1055581                                                                                            
1024      16  745286 1110539                                                                                            
1024      32  610585 1030184                                                                                            
1024      64  929225 1590130                                                                                            
1024     128 1009859 1672930                                                                                            
1024     256 1042711 2039603                                                                                            
1024     512  941942 1931895                                                                                            
1024    1024 1039504  706167

5. Especifique el tamaño del registro para probar usando iozone -r

Cuando ejecuta una prueba, para un tamaño de archivo específico, prueba con diferentes tamaños de registro que van desde 4k a 16M.

Si desea realizar pruebas de rendimiento de E/S de un subsistema de E/S que aloja la base de datos de Oracle, es posible que desee establecer el tamaño de registro en el iozone en el mismo valor del tamaño de bloque de la base de datos. La base de datos lee y escribe según el tamaño del bloque de la base de datos.

reclen significa Longitud de registro. En el ejemplo anterior, la segunda columna (con el encabezado de columna "reclen") indica la longitud del registro que debe usarse para probar IOzone. En el ejemplo anterior, para el tamaño de archivo de 1024 KB, la prueba de iozone usó varios tamaños de registro que van desde 4k hasta 16M para realizar la prueba de escritura.

En lugar de usar todos estos tamaños de longitud de registro predeterminados, también puede especificar el tamaño de registro que le gustaría probar.

El siguiente ejemplo ejecutará la prueba de escritura solo para una longitud de registro de 32k. En la salida, la segunda columna ahora solo mostrará 32.

$ ./iozone -a -i 0 -r 32
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  64      32  566551  820553                                                                                            
 128      32  574098 1000000                                                                                            
 256      32  826044  948043                                                                                            
 512      32  801282 1560624                                                                                            
1024      32  859116  528901                                                                                            
2048      32  881206 1423096

6. Combine el tamaño del archivo con el tamaño del registro

También puede usar la opción -s y -r para especificar un tamaño de archivo temporal exacto y la longitud exacta del registro que debe probarse.

Por ejemplo, lo siguiente ejecutará la prueba de escritura usando un archivo de 2M con una longitud de registro de 1M

$ ./iozone -a -i 0 -s 2048 -r 1024
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
2048    1024 1065570 1871841

7. Prueba de rendimiento usando iozone -t

Para ejecutar el iozone en modo de rendimiento, utilice la opción -t. También debe especificar la cantidad de subprocesos que deben estar activos durante esta prueba.

El siguiente ejemplo ejecutará la prueba de rendimiento de iozone para escrituras usando 2 subprocesos. Tenga en cuenta que no puede combinar la opción -a con la opción -t.

$ ./iozone -i 0 -t 2

Children see throughput for  2 initial writers 1=  433194.53 KB/sec
Parent sees throughput for  2 initial writers 	=    7372.12 KB/sec
Min throughput per process 			=       0.00 KB/sec 
Max throughput per process 			=  433194.53 KB/sec
Avg throughput per process 			=  216597.27 KB/sec
Min xfer 					=       0.00 KB

Children see throughput for  2 rewriters 	=  459924.70 KB/sec
Parent sees throughput for  2 rewriters 	=   13049.40 KB/sec
Min throughput per process 			=  225610.86 KB/sec 
Max throughput per process 			=  234313.84 KB/sec
Avg throughput per process 			=  229962.35 KB/sec
Min xfer 					=     488.00 KB

Para realizar el rendimiento de todos los tipos de prueba, elimine "-i 0" del ejemplo anterior, como se muestra a continuación.

$ ./iozone -t 2

8. Incluya la utilización de CPU usando iozone -+u

Mientras realiza la prueba de iozone, también puede indicarle a iozone que recopile la utilización de la CPU mediante la opción -+u.

El -+ delante de la opción puede parecer un poco extraño. Pero, tienes que dar el -+u completo (no solo -u, o +u) para que esto funcione correctamente.

El siguiente ejemplo ejecutará todas las pruebas e incluirá el informe de uso de la CPU como parte de la hoja de cálculo de Excel que genera.

$ ./iozone -a -+u -b output.xls

Nota:Esto mostrará la utilización de la CPU por separado para todas y cada una de las pruebas que realiza.

9. Aumente el tamaño del archivo usando iozone -g

Esto es importante. Si su sistema tiene más de 512 MB de RAM, debe aumentar el tamaño del archivo temporal que usa iozone para las pruebas. Si no lo hace, es posible que no obtenga resultados precisos, ya que el caché del búfer del sistema jugará un papel en ello.

Para un rendimiento de disco preciso, se recomienda tener un tamaño de archivo temporal 3 veces mayor que el tamaño de la memoria caché del búfer del sistema.

El siguiente ejemplo ejecutará iozone aumentando el tamaño máximo de archivo a 2 GB y ejecutará la prueba automática de iozone para pruebas de escritura.

$ ./iozone -a -g 2G -i 0
                                                random  random    bkwd   record   stride                                   
  KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
  64       4  556674 1230677                                                                                            
  64       8  278340  441320                                                                                            
  64      16  608990 1454053                                                                                            
  64      32  504125 1085411                                                                                            
  64      64  571418 1279331                                                                                            
 128       4  526602  961764                                                                                            
 128       8  714730  518219                         
...

10. Pruebe varios puntos de montaje juntos usando iozone -F

Al combinar varias opciones de iozone, puede realizar pruebas de E/S de disco en varios puntos de montaje, como se muestra a continuación.

Si tiene 2 puntos de montaje, puede iniciar 2 subprocesos iozone diferentes para crear archivos temporales en ambos puntos de montaje para realizar pruebas, como se muestra a continuación.

$ ./iozone -l 2 -u 2 -r 16k -s 512M -F /u01/tmp1 /u02/tmp2
  • -l indica el número mínimo de procesos iozone que deben iniciarse
  • -u indica el número máximo de procesos iozone que deben iniciarse
  • -F debe contener varios valores. es decir, si especificamos 2 tanto en -l como en -u, deberíamos tener dos nombres de archivo aquí. Tenga en cuenta que solo es necesario que existan los puntos de montaje. El archivo especificado en la opción -F no necesita existir, ya que iozone creará este archivo temporal durante la prueba. En el ejemplo anterior, los puntos de montaje son /u01 y /u02. iozone creará automáticamente los archivos tmp1 y tmp2 con fines de prueba.

Artículos anteriores de la serie de supervisión y ajuste del rendimiento de Linux:

  • Introducción a la supervisión y ajuste del rendimiento de Linux
  • 15 ejemplos prácticos de comandos superiores de Linux
  • 7 ejemplos prácticos de comandos PS para la supervisión de procesos
  • 10 ejemplos útiles de Sar (Sysstat) para la supervisión del rendimiento de UNIX/Linux

Linux
  1. Linux:¿determinación del archivo específico responsable de la E/S alta?

  2. Linux – Referencias ¿Pero para Linux?

  3. 10 ejemplos útiles de Sar (Sysstat) para la supervisión del rendimiento de UNIX/Linux

  4. 24 ejemplos de iostat, vmstat y mpstat para la supervisión del rendimiento de Linux

  5. Linux:¿Hay algo similar a top para E/S?

Tutorial de Linux ln Command para principiantes (5 ejemplos)

Tutorial de comandos Linux nl para principiantes (7 ejemplos)

Tutorial de comandos de Linux nm para principiantes (10 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)