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

From ICO wiki
Jump to navigationJump to search
Line 69: Line 69:
Parameetrid:
Parameetrid:
*-a - kõik testid automaatselt suureneva plokisuuruse ja arvuga
*-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
*-s 16G - kasutatava faili suurus
*-r 1M - ploki suurus
*-r 1M - ploki suurus
*...
*-b output.xls - salvestab testi väljundi tabelarvutusprogrammis töödeldavaks failiks
*ja palju muid <ref name="iozone">


IOzone abil kiiruse mõõtmine automaatrežiimis. Tehakse teste 64k kuni 512MB failisuuruse ja 4k kuni 16M plokisuurusega.
IOzone abil kiiruse mõõtmine automaatrežiimis. Tehakse teste 64k kuni 512MB failisuuruse ja 4k kuni 16M plokisuurusega.

Revision as of 14:06, 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 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 Cite error: Closing </ref> missing for <ref> tag võimaldab lisaks läbilaskekiirusele mõõta ka latentsust. Allpool toodud parameetrid:[5]
  • -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. 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