GNU/Linux >> Tutoriels Linux >  >> Linux

10 exemples iozone pour la mesure des performances d'E/S de disque sous Linux

Si quelqu'un se plaint qu'une base de données (ou toute application) s'exécutant sur un serveur (avec un certain système de fichiers ou une configuration RAID) s'exécute plus rapidement que la même base de données ou application s'exécutant sur un autre serveur, vous voudrez peut-être vous assurer que les performances sur le le niveau de disque est le même sur les deux serveurs. Vous pouvez utiliser iozone pour cette situation.

Si vous exécutez votre base de données (ou toute application) sur certains environnements SAN ou NAS, et que vous souhaitez la migrer vers un environnement SAN ou NAS différent, vous devez effectuer benchmark du système de fichiers sur les deux systèmes et comparez-le. Vous pouvez utiliser iozone pour cette situation.

Si vous savez comment utiliser iozone, vous pouvez pratiquement l'utiliser à diverses fins d'analyse comparative du système de fichiers.

Téléchargez et installez IOZone

Iozone est un utilitaire d'analyse comparative de systèmes de fichiers open source.

Suivez les étapes ci-dessous pour télécharger et installer iozone sur votre système.

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

tar xvf iozone3_394.tar 

cd iozone3_394/src/current

make

make linux

Que mesure l'utilité IOzone ?

IOzone réalise les 13 types de tests suivants. Si vous exécutez le test iozone sur un serveur de base de données, vous pouvez vous concentrer sur les 6 premiers tests, car ils ont un impact direct sur les performances de la base de données.

  1. Lecture :indique les performances de lecture d'un fichier qui existe déjà dans le système de fichiers.
  2. Write - Indique les performances d'écriture d'un nouveau fichier dans le système de fichiers.
  3. Relire :après la lecture d'un fichier, cela indique les performances de lecture d'un fichier à nouveau.
  4. Réécriture :indique les performances d'écriture dans un fichier existant.
  5. Lecture aléatoire :indique les performances de lecture d'un fichier en lisant des informations aléatoires à partir du fichier. c'est-à-dire qu'il ne s'agit pas d'une lecture séquentielle.
  6. Random Write :indique les performances d'écriture dans un fichier à divers emplacements aléatoires. c'est-à-dire qu'il ne s'agit pas d'une écriture séquentielle.
  7. Lecture arrière
  8. Réécriture d'enregistrement
  9. Lecture de la foulée
  10. Lire
  11. Fwrite
  12. Relire
  13. Réécrire

10 exemples d'IOZone

1. Exécutez tous les tests IOZone en utilisant les valeurs par défaut

-une option représente le mode automatique. Cela crée des fichiers de test temporaires de tailles 64k à 512 Mo pour les tests de performances. Ce mode utilise également des tailles d'enregistrement de 4 000 à 16 000 000 pour les tests de lecture et d'écriture (nous en reparlerons plus tard).

-une option exécutera également les 13 types de tests.

$ ./iozone -a

La première section de la sortie iozone contient les informations d'en-tête, qui affichent des informations sur l'utilitaire iozone et toutes les options iozone utilisées pour générer ce rapport, comme indiqué ci-dessous.

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 deuxième section de la sortie contient les valeurs de sortie (en par seconde) de divers tests.

  • 1ère colonne Ko :indique la taille du fichier utilisé pour le test.
  • 2e colonne reclen :indique la longueur de l'enregistrement qui a été utilisée pour le test.
  • 3ème colonne jusqu'à la dernière colonne :indique les différents tests effectués et ses valeurs de sortie par seconde.
                                                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. Enregistrez la sortie dans une feuille de calcul à l'aide de iozone -b

Pour enregistrer la sortie iozone dans une feuille de calcul, utilisez l'option -b comme indiqué ci-dessous. -b signifie binaire et indique à iozone d'écrire la sortie du test au format binaire dans une feuille de calcul.

$ ./iozone -a -b output.xls

Remarque :L'option -b peut être utilisée avec n'importe lequel des exemples mentionnés ci-dessous.

À partir des données enregistrées dans la feuille de calcul, vous pouvez créer de jolis graphiques à l'aide de la fonctionnalité graphique de l'outil de feuille de calcul. Voici un exemple de graphique créé à partir de la sortie iozone.

Fig :graphique IOZone

3. N'exécutez qu'un type de test spécifique à l'aide de iozone -i

Si vous souhaitez exécuter uniquement un type de test spécifique, utilisez l'option -i.

Syntaxe :

iozone -i [test-type]

Le type de test est une valeur numérique. Voici les différents types de test disponibles et leur valeur numérique.

  • 0=écrire/réécrire
  • 1=lu/relu
  • 2=lecture/écriture aléatoire
  • 3=Lire en arrière
  • 4=Réécrire-enregistrer
  • 5=lecture foulée
  • 6=fwrite/re-fwrite
  • 7=lire/Relire,
  • 8=mélange aléatoire
  • 9=pwrite/Re-pwrite
  • 10=lire/Relire
  • 11=pwritev/Re-pwritev
  • 12=preadv/Re-preadv

L'exemple suivant exécutera uniquement les tests d'écriture (c'est-à-dire à la fois l'écriture et la réécriture). Comme vous le voyez sur la sortie, les autres colonnes sont vides.

$ ./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

Combinez plusieurs types de tests iozone

Vous pouvez également combiner plusieurs types de test en spécifiant plusieurs -i dans la ligne de commande.

Par exemple, l'exemple suivant testera à la fois les types de test de lecture et d'écriture.

$ ./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. Spécifiez la taille du fichier en utilisant iozone -s

Par défaut, iozone créera automatiquement des fichiers temporaires d'une taille de 64k à 512M, pour effectuer divers tests.

La 1ère colonne de la sortie iozone (avec l'en-tête de colonne Ko) indique la taille du fichier. Comme vous l'avez vu dans la sortie précédente, il commence avec un fichier de 64 Ko et continuera d'augmenter jusqu'à 512 Mo (en doublant la taille du fichier à chaque fois).

Au lieu d'exécuter le test pour toutes les tailles de fichier, vous pouvez spécifier la taille du fichier à l'aide de l'option -s.

L'exemple suivant effectuera un test d'écriture uniquement pour une taille de fichier de 1 Mo (c'est-à-dire 1 024 Ko).

$ ./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. Spécifiez la taille de l'enregistrement pour les tests à l'aide de iozone -r

Lorsque vous exécutez un test, pour une taille de fichier spécifique, il teste avec différentes tailles d'enregistrement allant de 4k à 16M.

Si vous souhaitez effectuer des tests de performances d'E/S d'un sous-système d'E/S qui héberge la base de données Oracle, vous souhaiterez peut-être définir la taille d'enregistrement dans l'iozone sur la même valeur que la taille de bloc de la base de données. La base de données lit et écrit en fonction de la taille du bloc de base de données.

reclen signifie Record Length. Dans l'exemple précédent, la 2ème colonne (avec l'en-tête de colonne "reclen") indique la longueur d'enregistrement qui doit être utilisée pour tester IOzone. Dans l'exemple précédent, pour la taille de fichier de 1 024 Ko, les tests iozone ont utilisé différentes tailles d'enregistrement allant de 4 k à 16 Mo pour effectuer le test d'écriture.

Au lieu d'utiliser toutes ces tailles de longueur d'enregistrement par défaut, vous pouvez également spécifier la taille d'enregistrement que vous souhaitez tester.

L'exemple ci-dessous exécutera un test d'écriture uniquement pour une longueur d'enregistrement de 32 Ko. Dans la sortie, la 2ème colonne n'affichera plus que 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. Combinez la taille du fichier avec la taille de l'enregistrement

Vous pouvez également utiliser les options -s et -r pour spécifier une taille de fichier temporaire exacte et une longueur d'enregistrement exacte qui doit être testée.

Par exemple, ce qui suit exécutera le test d'écriture en utilisant un fichier de 2 Mo avec une longueur d'enregistrement de 1 Mo

$ ./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. Test de débit avec iozone -t

Pour exécuter l'iozone en mode débit, utilisez l'option -t. Vous devez également spécifier le nombre de threads qui doivent être actifs pendant ce test.

L'exemple suivant exécutera le test de débit iozone pour les écritures utilisant 2 threads. Veuillez noter que vous ne pouvez pas combiner l'option -a avec l'option -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

Pour effectuer le débit pour tous les types de test, supprimez le "-i 0" de l'exemple ci-dessus, comme indiqué ci-dessous.

$ ./iozone -t 2

8. Inclure l'utilisation du processeur en utilisant iozone -+u

Lors de l'exécution des tests iozone, vous pouvez également demander à iozone de collecter l'utilisation du processeur à l'aide de l'option -+u.

Le -+ devant l'option peut sembler un peu étrange. Mais, vous devez donner le -+u entier (pas seulement -u ou +u) pour que cela fonctionne correctement.

L'exemple suivant exécutera tous les tests et inclura le rapport d'utilisation du processeur dans la sortie de la feuille de calcul Excel qu'il génère.

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

Remarque :Cela affichera une utilisation du processeur distincte pour chaque test effectué.

9. Augmentez la taille du fichier en utilisant iozone -g

C'est important. Si votre système dispose de plus de 512 Mo de RAM, vous devez augmenter la taille du fichier temporaire utilisé par iozone pour les tests. Si vous ne le faites pas, vous risquez de ne pas obtenir de résultats précis, car le cache de la mémoire tampon du système y jouera un rôle.

Pour des performances de disque précises, il est recommandé d'avoir une taille de fichier temporaire égale à 3 fois la taille de votre cache de tampon système.

L'exemple suivant exécutera l'iozone en augmentant la taille maximale du fichier à 2 Go et exécutera les tests automatiques d'iozone pour les tests d'écriture.

$ ./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. Testez plusieurs points de montage ensemble à l'aide de iozone -F

En combinant plusieurs options iozone, vous pouvez effectuer des tests d'E/S de disque sur plusieurs points de montage, comme indiqué ci-dessous.

Si vous avez 2 points de montage, vous pouvez démarrer 2 threads iozone différents pour créer des fichiers temporaires sur ces deux points de montage à tester, comme indiqué ci-dessous.

$ ./iozone -l 2 -u 2 -r 16k -s 512M -F /u01/tmp1 /u02/tmp2
  • -l indique le nombre minimum de processus iozone à démarrer
  • -u indique le nombre maximum de processus iozone qui doivent être lancés
  • -F doit contenir plusieurs valeurs. c'est-à-dire que si nous spécifions 2 dans -l et -u, nous devrions avoir deux noms de fichiers ici. Veuillez noter que seuls les points de montage doivent exister. Le fichier spécifié dans l'option -F n'a pas besoin d'exister, car iozone créera ce fichier temporaire pendant le test. Dans l'exemple ci-dessus, les points de montage sont /u01 et /u02. Les fichiers tmp1 et tmp2 seront automatiquement créés par iozone à des fins de test.

Articles précédents de la série sur la surveillance et le réglage des performances Linux :

  • Introduction à la surveillance et à l'optimisation des performances de Linux
  • 15 exemples pratiques de commandes principales Linux
  • 7 exemples pratiques de commandes PS pour la surveillance de processus
  • 10 exemples Sar (Sysstat) utiles pour la surveillance des performances UNIX/Linux

Linux
  1. Linux - Détermination du fichier spécifique responsable des E/S élevées ?

  2. 24 Exemples iostat, vmstat et mpstat pour la surveillance des performances Linux

  3. Linux :Existe-t-il quelque chose de similaire à top pour les E/S ?

  4. E/S de disque Linux OOM. Aussi :swap, à quoi ça sert ?

  5. Évaluation de l'attente d'E/S CPU sous Linux

Tutoriel Linux ln Command pour débutants (5 exemples)

Tutoriel de commande Linux nl pour les débutants (7 exemples)

Tutoriel de commande Linux nm pour les débutants (10 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)