4k-rw-test-SSD-read-cache
#!/bin/bash
/usr/bin/fio –filename=/dev/bcache0 –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=4ktest
Verwendete Parameter:
- filename: Verwendung einer einzelnen Datei oder eines ganzen Block Devices (Achtung: Beim Verwenden eines Block Devices wird das ganze Device überschrieben!)
- direct: 1 = benutze non-buffered I/O, 0 = buffered
- rw: I/O Muster, mögliche Optionen: read,write(Sequential reads/writes),randread,randwrite(Random reads/writes),readwrite(Sequential reads&writes),randrw(Random reads&writes)
- refill_buffers: Puffer bei jedem IO-Submit neu befüllen (SSD Kompressions-Effekt umgehen)
- norandommap: wähle neuen offset bei random I/O
- randrepeat: 1=vorhersehbare Zufallszahlen (für konsistente Ergebnisse bei mehreren Durchläufen), 0=nicht vorhersehbare Zufallszahlen
- ioengine: sync(read/write+fseek), psync (pread/pwrite), vsync (readv/writev), pvsync(preadv/pwritev), libaio(Linux native asynchronous), posixaio(aio_read/aio_write), u.a.
- bs: blocksize
- rwmixread: Anzahl Read Operationen (in Prozent)
- rwmixwrite: Anzahl Write Operationen (in Prozent)
- iodepth: Anzahl parallele I/O-Requests (bei libaio engine)
- numjobs: Anzahl Prozesse die gestartet werden, um parallel Jobs auszuführen
- runtime: Laufzeit des Tests (in Sekunden)
- group_reporting: Ergebnisse pro Gruppe (bei Verwendung von –numjobs) anstatt pro Job
- name: Name des Tests
4k-rw-test-HDD
#!/bin/bash
/usr/bin/fio –filename=/dev/sdd –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=4ktest
4k-rw-test-HDD-new
#!/bin/bash
/usr/bin/fio –filename=/media/data1 –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=4ktest
8k-70-30-test-SSD-read-cache
#!/bin/bash
fio –filename=/dev/bcache0 –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=8k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=8k7030test
iozone # hard core load test
#!/bin/bash
iozone -R -l 100 -u 256 -r 4k -s 1000m -F /mnt/test{1..256}
Verwendete Parameter:
- R: generiere Excel Report
- l: mindestzahl an zu startenden Prozessen
- u: höchstzahl an zu startenden Prozessen
- r: Record Size (k/m/g=Kbytes/Mbytes/Gbytes)
- s: Größe Testdatei (k/m/g=Kbytes/Mbytes/Gbytes)
- F: Dateinamen der Testdateien (Anzahl = Anzahl Prozesse)
weitere Informationen
Measure Ceph RBD performance in a quantitative way (part I)
NAS Server Testing, Part 2: IOZone
Gluster performance testing
Thomas Krenn Wiki: Fio
Thomas Krenn Wiki: Messen von I/O Performance
How to benchmark disk I/O
Linux Benchmarking Tools