GNU/Linux >> Znalost Linux >  >> Linux

10 příkladů iozone pro měření výkonu disku I/O v systému Linux

Jak jsme uvedli v našem úvodním článku monitorování výkonu Linuxu, měření výkonu IO subsystému je velmi důležité.

Pokud si někdo stěžuje, že databáze (nebo jakákoli aplikace) běžící na jednom serveru (s určitým souborovým systémem nebo konfigurací RAID) běží rychleji než stejná databáze nebo aplikace běžící na jiném serveru, možná budete chtít zajistit, aby výkon na úroveň disku je stejná na obou serverech. Pro tuto situaci můžete použít iozone.

Pokud provozujete databázi (nebo jakoukoli aplikaci) v určitém prostředí SAN nebo NAS a chtěli byste ji migrovat do jiného prostředí SAN nebo NAS, měli byste provést benchmaking souborového systému na obou systémech a porovnejte jej. Pro tuto situaci můžete použít iozon.

Pokud víte, jak používat iozone, můžete jej do značné míry použít pro různé účely benchmarkingu souborových systémů.

Stáhněte a nainstalujte IOZone

Iozone je nástroj pro testování systému souborů s otevřeným zdrojovým kódem.

Pro stažení a instalaci iozone do vašeho systému postupujte podle následujících kroků.

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

tar xvf iozone3_394.tar 

cd iozone3_394/src/current

make

make linux

Co nástroj IOzone měří?

IOzone provádí následujících 13 typů testů. Pokud provádíte iozone test na databázovém serveru, můžete se zaměřit na 1. 6 testů, protože přímo ovlivňují výkon databáze.

  1. Čtení – označuje výkon čtení souboru, který již existuje v souborovém systému.
  2. Zápis – Označuje výkon zápisu nového souboru do souborového systému.
  3. Znovu přečíst – po přečtení souboru to indikuje výkon při opětovném čtení souboru.
  4. Re-write – Označuje výkon zápisu do existujícího souboru.
  5. Náhodné čtení – Označuje výkon čtení souboru čtením náhodných informací ze souboru. tj. nejedná se o sekvenční čtení.
  6. Náhodný zápis – Označuje výkon zápisu do souboru v různých náhodných umístěních. tj. nejedná se o sekvenční zápis.
  7. Čtení zpět
  8. Přepsat záznam
  9. Čtení s krokem
  10. Fread
  11. Fwrite
  12. Freread
  13. Frewrite

10 příkladů IOZone

1. Spusťte všechny testy IOZone s použitím výchozích hodnot

-volba znamená automatický režim. Tím se vytvoří dočasné testovací soubory o velikosti 64 kB až 512 MB pro testování výkonu. Tento režim také používá 4k až 16 milionů záznamů pro testování čtení a zápisu (více o tom později).

-a také provede všech 13 typů testů.

$ ./iozone -a

První část výstupu iozone obsahuje informace v záhlaví, které zobrazují informace o nástroji iozone a všechny možnosti iozone, které se používají k vytvoření této zprávy, jak je uvedeno níže.

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.

Druhá část výstupu obsahuje výstupní hodnoty (v za sekundu) různých testů.

  • 1. sloupec KB:Označuje velikost souboru, který byl použit pro testování.
  • 2. sloupec reclen:Označuje délku záznamu, který byl použit pro testování.
  • 3. sloupec až po poslední sloupec:Označuje různé testy, které se provádějí, a jejich výstupní hodnoty za sekundu.
                                                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. Uložte výstup do tabulky pomocí iozone -b

Chcete-li uložit výstup iozone do tabulky, použijte volbu -b, jak je uvedeno níže. -b znamená binární a dává pokyn iozone, aby zapsal výstup testu v binárním formátu do tabulky.

$ ./iozone -a -b output.xls

Poznámka:Volbu -b lze použít s kterýmkoli z níže uvedených příkladů.

Z dat uložených v tabulkovém procesoru můžete vytvořit pěkné grafy pomocí funkce grafů tabulkového procesoru. Následuje ukázkový graf, který byl vytvořen z výstupu iozonu.

obr :IOZone graf

3. Spusťte pouze určitý typ testu pomocí iozone -i

Pokud máte zájem spustit pouze určitý typ testu, použijte volbu -i.

Syntaxe:

iozone -i [test-type]

Typ testu je číselná hodnota. Následují různé dostupné typy testů a jejich číselná hodnota.

  • 0=zápis/přepis
  • 1=přečíst/znovu přečíst
  • 2=náhodné čtení/zápis
  • 3=Čtení zpět
  • 4=Přepsat-záznam
  • 5=čtení krokem
  • 6=fwrite/re-fwrite
  • 7=oblézt/znovu se rozptýlit,
  • 8=náhodný mix
  • 9=pwrite/Re-pwrite
  • 10=pread/Re-read
  • 11=pwritev/Re-pwritev
  • 12=preadv/Re-preadv

Následující příklad spustí pouze testy zápisu (tj. zápis i přepis). Jak vidíte z výstupu, ostatní sloupce jsou prázdné.

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

Kombinovat více typů iozonových testů

Můžete také kombinovat více typů testů zadáním více -i v příkazovém řádku.

Například následující příklad otestuje typy testu čtení i zápisu.

$ ./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. Zadejte velikost souboru pomocí iozone -s

Ve výchozím nastavení iozone automaticky vytvoří dočasné soubory o velikosti od 64k do 512M, aby bylo možné provádět různá testování.

1. sloupec ve výstupu iozone (s záhlavím sloupce KB) udává velikost souboru. Jak jste viděli z předchozího výstupu, začíná souborem o velikosti 64 kB a bude se neustále zvětšovat až na 512 MB (pokaždé zdvojnásobením velikosti souboru).

Místo spuštění testu pro všechny velikosti souborů můžete velikost souboru určit pomocí volby -s.

Následující příklad provede test zápisu pouze pro soubor o velikosti 1 MB (tj. 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. Zadejte velikost záznamu pro testování pomocí iozone -r

Když spustíte test pro konkrétní velikost souboru, testuje se s různými velikostmi záznamů v rozmezí od 4 kB do 16 milionů.

Pokud chcete provádět testování I/O výkonu I/O subsystému, který je hostitelem databáze Oracle, možná budete chtít nastavit velikost záznamu v iozone na stejnou hodnotu velikosti bloku DB. Databáze čte a zapisuje na základě velikosti bloku DB.

reclen znamená délku záznamu. V předchozím příkladu 2. sloupec (se záhlavím sloupce „reclen“) udává délku záznamu, který by měl být použit pro testování IOzóny. V předchozím příkladu outout pro velikost souboru 1024 kB použilo iozone testování různé velikosti záznamů v rozmezí od 4k do 16M k provedení testu zápisu.

Namísto použití všech těchto výchozích velikostí délky záznamu můžete také určit velikost záznamu, kterou chcete otestovat.

Níže uvedený příklad spustí test zápisu pouze pro záznam délky 32 kB. Ve výstupu bude nyní 2. sloupec zobrazovat pouze 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. Zkombinujte velikost souboru s velikostí záznamu

Můžete také použít volby -s a -r k určení přesné velikosti dočasného souboru a přesné délky záznamu, kterou je třeba otestovat.

Následující příklad spustí test zápisu pomocí souboru 2M s délkou záznamu 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. Test propustnosti pomocí iozone -t

Chcete-li spustit iozone v režimu propustnosti, použijte volbu -t. Měli byste také určit počet vláken, která musí být během tohoto testu aktivní.

Následující příklad provede test propustnosti iozone pro zápisy pomocí 2 vláken. Vezměte prosím na vědomí, že nemůžete kombinovat volbu -a s volbou -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

Chcete-li provést propustnost pro všechny typy testů, odstraňte „-i 0“ z výše uvedeného příkladu, jak je uvedeno níže.

$ ./iozone -t 2

8. Zahrnout využití CPU pomocí iozone -+u

Při provádění iozone testování můžete také instruovat iozone, aby shromáždil využití CPU pomocí volby -+u.

-+ před volbou může vypadat trochu divně. Ale musíte zadat celé -+u (nejen -u nebo +u), aby to fungovalo správně.

Následující příklad provede celý test a zahrne zprávu o využití CPU jako součást výstupu tabulkového procesoru Excel, který generuje.

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

Poznámka:Toto zobrazí samostatné využití CPU pro každý test, který provede.

9. Zvětšete velikost souboru pomocí iozone -g

Toto je důležité. Pokud má váš systém více než 512 MB RAM, měli byste zvětšit velikost dočasného souboru, který iozone používá pro testování. Pokud tak neučiníte, nemusíte získat přesné výsledky, protože v tom bude hrát roli vyrovnávací paměť systému.

Pro přesný výkon disku se doporučuje mít velikost dočasného souboru 3krát větší, než je velikost vyrovnávací paměti systému.

Následující příklad spustí iozone zvýšením maximální velikosti souboru na 2 GB a spustí automatické testování iozone pro testy zápisu.

$ ./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. Vyzkoušejte více upevňovacích bodů společně pomocí iozone -F

Kombinací několika možností iozone můžete provádět testování I/O disku na více přípojných bodech, jak je uvedeno níže.

Pokud máte 2 přípojné body, můžete spustit 2 různá vlákna iozone a vytvořit dočasné soubory na obou těchto přípojných bodech pro testování, jak je uvedeno níže.

$ ./iozone -l 2 -u 2 -r 16k -s 512M -F /u01/tmp1 /u02/tmp2
  • -l označuje minimální počet iozonových procesů, které by měly být spuštěny
  • -u označuje maximální počet iozonových procesů, které by měly být spuštěny
  • -F by měl obsahovat více hodnot. tj. Pokud zadáme 2 v -l i -u, měli bychom zde mít dva názvy souborů. Upozorňujeme, že musí existovat pouze přípojné body. Soubor zadaný ve volbě -F nemusí existovat, protože iozone vytvoří tento dočasný soubor během testování. Ve výše uvedeném příkladu jsou body připojení /u01 a /u02. Soubor tmp1 a tmp2 automaticky vytvoří iozone pro testovací účely.

Předchozí články ze série sledování a ladění výkonu Linuxu:

  • Úvod do monitorování a ladění výkonu systému Linux
  • 15 praktických příkladů hlavních příkazů Linuxu
  • 7 praktických příkladů příkazů PS pro monitorování procesu
  • 10 užitečných příkladů Sar (Sysstat) pro monitorování výkonu UNIX / Linux

Linux
  1. Linux – reference, ale pro Linux?

  2. 24 Příklady iostat, vmstat a mpstat pro monitorování výkonu Linuxu

  3. Jak vyčistit diskové I/O mezipaměti v Linuxu?

  1. Linux:Existuje něco podobného jako top pro I/O?

  2. Masivní, nepředvídatelný pokles I/O výkonu v Linuxu

  3. wa (Čekání na I/O) z horního příkazu je velký

  1. Linux – Určení konkrétního souboru odpovědného za vysoké I/O?

  2. 10 Užitečné příklady Sar (Sysstat) pro monitorování výkonu UNIX / Linux

  3. Linux OOM disk I/O. Také:swap, k čemu je to dobré?