Linux failisüsteemi jõudluse mõõtmine: Difference between revisions
Created page with "Tanel Liik AK31" |
No edit summary |
||
Line 1: | Line 1: | ||
Tanel Liik | ==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:<ref name="slashroot">Slashroot.in - Linux File System Read Write Performance Test: http://www.slashroot.in/linux-file-system-read-write-performance-test</ref> | |||
===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 | |||
[[image:Tliik_dd1.png|none|548x76px]] | |||
Selle käsuga võib aga tulemust moonutada süsteemi puhvrikasutus.<ref name="slashroot"/> <br/> | |||
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. <ref name="slashroot"/> | |||
dd dd bs=8k count=1000k if=/dev/zero of=test conv=fdatasync | |||
Väljund | |||
[[image:Tliik_dd2.png|none|680x74px]] | |||
Teine võimalus on kasutada mõõtmiseks käsku 'time' ja kettale kirjutamine kindlustada käsuga 'sync'.<ref name="toolbox">Toolbox.com - Testing Disk Speed: the dd Test: http://it.toolbox.com/blogs/database-soup/testing-disk-speed-the-dd-test-31069</ref> | |||
time sh -c "dd bs=8k count=1000k if=/dev/zero of=test && sync" | |||
Väljund | |||
[[image:Tliik_dd4.png|none|736x146px]] | |||
'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 | |||
[[image:tliik_dd3.png|none|547x72px]] | |||
==Jõudluse mõõtmine hdparm abil== | |||
Teine käsk, millega on võimalik järjestiklugemiskiirusi mõõta on hdparm.<ref name="slashroot"/> | |||
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 | |||
[[image:Tliik_hdparm.png|none|626x111px]] | |||
*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. <br/> | |||
Üheks selliseks rakenduseks on IOzone<ref name="iozone">IOzone.org - IOzone Filesystem Benchmark: http://www.iozone.org/</ref>, mis võimaldab mõõta järgmisi kiirusi: <ref name="linuxmag">Linux-mag.com - I Feel the Need for Speed: Linux File System Throughput Performance, Part 1: http://www.linux-mag.com/id/7525/</ref> | |||
*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 | |||
*... | |||
==Jõudluse mõõtmine Bonnie++ abil== | |||
Bonnie++<ref name="bonnie">Coker.com.au - Bonnie++ Documentation: http://www.coker.com.au/bonnie++/readme.html</ref> võimaldab lisaks läbilaskekiirusele mõõta ka latentsust. Allpool toodud parameetrid:<ref name="coyle">JamesCoyle.net - Benchmark disk IO with DD and Bonnie++: http://www.jamescoyle.net/how-to/599-benchmark-disk-io-with-dd-and-bonnie</ref><br/> | |||
*-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 | |||
[[image:Tliik_bonnie.png|none|734x417px]] | |||
==Kasutatud materjal:== | |||
<references /> | |||
Pildid: Tanel Liik | |||
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] |
Revision as of 18:14, 10 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
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
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
- -s 16G - kasutatava faili suurus
- -r 1M - ploki suurus
- ...
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
- ↑ 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