Linux failisüsteemi jõudluse mõõtmine: Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Created page with "Tanel Liik AK31")
 
No edit summary
Line 1: Line 1:
Tanel Liik AK31
==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. 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
  2. Toolbox.com - Testing Disk Speed: the dd Test: http://it.toolbox.com/blogs/database-soup/testing-disk-speed-the-dd-test-31069
  3. IOzone.org - IOzone Filesystem Benchmark: http://www.iozone.org/
  4. Linux-mag.com - I Feel the Need for Speed: Linux File System Throughput Performance, Part 1: http://www.linux-mag.com/id/7525/
  5. Coker.com.au - Bonnie++ Documentation: http://www.coker.com.au/bonnie++/readme.html
  6. 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