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

From ICO wiki
Jump to navigationJump to search
Tliik (talk | contribs)
Tliik (talk | contribs)
Line 19: Line 19:
Selle käsuga võib aga tulemust moonutada süsteemi puhvrikasutus.<ref name="slashroot"/> <br/>
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"/>
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
  dd bs=8k count=1000k if=/dev/zero of=test conv=fdatasync
Väljund
Väljund
[[image:Tliik_dd2.png|none|680x74px]]
[[image:Tliik_dd2.png|none|680x74px]]

Revision as of 14:37, 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

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. 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. 3.0 3.1 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