Linux failisüsteemi jõudluse mõõtmine: Difference between revisions
Line 72: | Line 72: | ||
*-r 1M - ploki suurus | *-r 1M - ploki suurus | ||
*... | *... | ||
[[image:Tliik_iozone1.png|none|1228x616px]] | |||
IOzone abil läbilaskekiiruse mõõtmine | |||
iozone -i 0 -t 2 | |||
[[image:Tliik_iozone2.png|none|733x769px]] | [[image:Tliik_iozone2.png|none|733x769px]] | ||
Revision as of 15:00, 12 January 2014
Sissejuhatus
Linux failisüsteemi jõudluse mõõtmine
Eeldused
- Teadmisi Linux operatsioonisüsteemist
- Oskus töötada käsurealt
- Linux/Unix OS (näited on Ubuntu 13.04)
Jõudluse mõõtmine dd abil
Kõige lihtsamaks viisiks saada infot failisüsteemi jõudluse kohta on kasutades dd käsku. Alljärgnevalt mõned näited:[1]
Kirjutuskiiruse mõõtmine
dd bs=8k count=1000k if=/dev/zero of=test
- bs=8k - ploki suurus 8KB
- count=1000k - kasutatavate plokkide arv 1 000 000
- if=/dev/zero - sisend, hetkel nullid
- of=test - väljund, hetkel fail nimega 'test'
Väljund
![](/images/9/98/Tliik_dd1.png)
Selle käsuga võib aga tulemust moonutada süsteemi puhvrikasutus.[1]
Et mõõta konkreetselt ketta kiirust on mitu võimalust. Üheks neist on dd käsule lisada parameeter 'conv=fdatasync' mis tagastab tulemuse alles siis kui andmed on reaalselt kettale kirjutatud. [1]
dd dd bs=8k count=1000k if=/dev/zero of=test conv=fdatasync
Väljund
![](/images/2/29/Tliik_dd2.png)
Teine võimalus on kasutada mõõtmiseks käsku 'time' ja kettale kirjutamine kindlustada käsuga 'sync'.[2]
time sh -c "dd bs=8k count=1000k if=/dev/zero of=test && sync"
Väljund
![](/images/e/e1/Tliik_dd4.png)
'dd' poolt tagastatud kirjutatud baitide arvu ja 'time' poolt tagastatdu aja jagamisel saame reaalse kirjutuskiiruse. 501501046B/s = 478MB/s
Lugemiskiiruse mõõtmine
Lugemiskiiruse mõõtmiseks peab olema eelnevalt tekitatud piisava suurusega testfail. Vt eelmine peatükk.
dd if=test of=/dev/null bs=64k count=100k
- if=test - sisend, hetkel fail nimega 'test'
- of=/dev/null - väljund, hetkel must auk
Väljund
![](/images/c/cd/Tliik_dd3.png)
Jõudluse mõõtmine hdparm abil
Teine käsk, millega on võimalik järjestiklugemiskiirusi mõõta on hdparm.[1]
sudo hdparm -Tt /dev/sda
- sudo - hdparm vajab juurkasutaja õigusi
- -T - testib puhvrist lugemiskiirust ilma kettalt lugemiseta
- -t - testib lugemiskiirust kõvakettalt läbi kettapuhvri
- /dev/sda - kettaseade mida testitakse
Väljund
![](/images/1/1a/Tliik_hdparm.png)
- Timing cached reads - puhvrist lugemiskiirus ilma kettalt lugemiseta
- Timing buffered disk reads - lugemiskiirus kõvakettalt läbi kettapuhvri
Jõudluse mõõtmine IOzone abil
Täpsemaks ja põhjalikumaks jõudluse mõõtmiseks on vajalik paigaldada lisatarkvara.
Üheks selliseks rakenduseks on IOzone[3], mis võimaldab mõõta järgmisi kiirusi: [4]
- Kirjutamine - uue faili kirjutamine koos metaandmete loomisega
- Korduvkirjutamine - olemasoleva faili ülekirjutamine
- Lugemine - loeb olemasolevat faili
- Korduvlugemine - loeb juba varem loetud faili. Tänu operatsioonisüsteemis olevale puhvrile on see lugemine kiirem kui tavalugemine
- Juhuslik lugemine - loeb ühe faili juhuslikult valitud lõike
- Juhuslik kirjutamine - sarnane juhuslikule lugemisele. Kirjutab olemasoleva faili sisse juhuslikult valitud kohtadesse
- Juhuslik lugemine ja kirjutamine koos
- Tagurpidi lugemine - näiteks faili lugemine lõpust alguse poole
- Record Rewrite - kirjutatakse ühte plokki samasse kohta, näitab puhvrite kiirust, kuhu antud plokk mahtus
- Strided Read - hüppega lugemine. Failist loetakse nt algusest 4KB, liigutakse edasi 200KB, loetakse järgmised 4KB, jne
- Fwrite, Frewrite - kirjutamine kasutades teegi funktsiooni 'fwrite()'
- Fread, Freread - lugemine kasutades teegi funktsiooni 'fread()'
Parameetrid:
- -a - kõik testid automaatselt suureneva plokisuuruse ja arvuga
- -s 16G - kasutatava faili suurus
- -r 1M - ploki suurus
- ...
![](/images/d/db/Tliik_iozone1.png)
IOzone abil läbilaskekiiruse mõõtmine
iozone -i 0 -t 2
![](/images/7/75/Tliik_iozone2.png)
Jõudluse mõõtmine Bonnie++ abil
Bonnie++[5] võimaldab lisaks läbilaskekiirusele mõõta ka latentsust. Allpool toodud parameetrid:[6]
- -d – kaust, mida kasutatakse testimiseks
- -u – kasutaja, kellena testid käivitatakse, soovitav määrata, kui käsk käivitatakse juurkasutaja õigustes
- -g – grupp, kellena testid käivitatakse
- -r – arvuti mälumaht, testimise jaoks kasutatakse kahekordse mälumahu suurust faili
- -b – ei kasutata kirjutuspuhvreid ja iga tegevuse lõppedes tehakse andmede sünkroonimine kettale
- -s – testitav andmete suurus
- -n – faililoomistestis kasutatav failide arv
- -m – lisab väljundile sildi, et hiljem oleks võimalik aru saada, mis testiga tegu
- -x n - kordab teste n korda
Väljund
![](/images/0/04/Tliik_bonnie.png)
Kasutatud materjal:
- ↑ 1.0 1.1 1.2 1.3 Slashroot.in - Linux File System Read Write Performance Test: http://www.slashroot.in/linux-file-system-read-write-performance-test
- ↑ Toolbox.com - Testing Disk Speed: the dd Test: http://it.toolbox.com/blogs/database-soup/testing-disk-speed-the-dd-test-31069
- ↑ IOzone.org - IOzone Filesystem Benchmark: http://www.iozone.org/
- ↑ Linux-mag.com - I Feel the Need for Speed: Linux File System Throughput Performance, Part 1: http://www.linux-mag.com/id/7525/
- ↑ Coker.com.au - Bonnie++ Documentation: http://www.coker.com.au/bonnie++/readme.html
- ↑ JamesCoyle.net - Benchmark disk IO with DD and Bonnie++: http://www.jamescoyle.net/how-to/599-benchmark-disk-io-with-dd-and-bonnie
Pildid: Tanel Liik