Linux failisüsteemi jõudluse mõõtmine
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
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 bs=8k count=1000k if=/dev/zero of=test conv=fdatasync
Väljund
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
'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
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
- 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
- -i n - n asemel testi number 1-12, mitme testi jaoks mitu '-i n' parameetrit
- -s 16G - kasutatava faili suurus
- -r 1M - ploki suurus
- -b output.xls - salvestab testi väljundi tabelarvutusprogrammis töödeldavaks failiks
- ja palju muid [3]
IOzone abil kiiruse mõõtmine automaatrežiimis. Tehakse teste 64k kuni 512MB failisuuruse ja 4k kuni 16M plokisuurusega.
iozone -a
IOzone abil läbilaskekiiruse mõõtmine
iozone -i 0 -t 2
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
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
- ↑ 3.0 3.1 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