| |
| fio [2021-04-14 09:39:24] – angelegt manfred | fio [2021-04-14 10:32:20] (aktuell) – manfred |
|---|
| | ====== fio ====== |
| | |
| | Mit **''[[https://fio.readthedocs.io/en/latest/fio_doc.html#interpreting-the-output|fio]]''** kann man die Leistungsfähigkeit eines Speichervolumens ermitteln. |
| | |
| | ein Beispiel: |
| | > fio --name=test01 --filename=fio1x4K --numjobs=1 --bs=4K --directory=/var/lib/mysql --size=4G --ioengine=libaio --direct=1 --rw=randwrite --iodepth=32 --iodepth_batch=16 --iodepth_batch_complete=16 --runtime=60 --ramp_time=5 --norandommap --time_based -group_reporting |
| | |
| | root@linux:~# /root/bin/fio.sh |
| | # 1x 4K / read: BW=90.3MiB/s IOPS=23.1k / write: BW=90.2MiB/s IOPS=23.1k |
| | # 4x 4K / read: BW=95.4MiB/s IOPS=24.4k / write: BW=95.4MiB/s IOPS=24.4k |
| | # 1x 1M / read: BW=469MiB/s IOPS=468 / write: BW=468MiB/s IOPS=467 |
| | # 4x 1M / read: BW=471MiB/s IOPS=469 / write: BW=474MiB/s IOPS=472 |
| | |
| | |
| | ===== fio-2.1.3 ===== |
| | |
| | hier werden vier unterschiedliche Kommandos abgeschickt: |
| | <file bash /root/bin/fio.sh> |
| | #!/bin/bash |
| | |
| | #==============================================================================# |
| | # |
| | # /root/bin/fio.sh /var/lib/mysql 4G |
| | # |
| | #==============================================================================# |
| | |
| | #RW="read" # Sequential reads. |
| | #RW="write" # Sequential writes. |
| | #RW="randread" # Random reads. |
| | #RW="randwrite" # Random writes. |
| | #RW="rw" # Mixed sequential reads and writes. |
| | RW="randrw" # Mixed random reads and writes. |
| | |
| | #==============================================================================# |
| | ### Speicherort für den Test |
| | if [ -n "${1}" ] ; then |
| | VERZEICHNISNAME="${1}" |
| | else |
| | VERZEICHNISNAME="/tmp" |
| | fi |
| | |
| | #------------------------------------------------------------------------------# |
| | ### Speichergröße für den Test |
| | if [ -n "${2}" ] ; then |
| | GROESSE="${2}" |
| | else |
| | GROESSE="4G" |
| | fi |
| | |
| | #------------------------------------------------------------------------------# |
| | ALLGEMEINE_OPTIONEN="--directory=${VERZEICHNISNAME} --size=${GROESSE} --ioengine=libaio --direct=1 --rw=${RW} --iodepth=32 --iodepth_batch=16 --iodepth_batch_complete=16 --runtime=60 --ramp_time=5 --norandommap --time_based -group_reporting" |
| | |
| | #==============================================================================# |
| | |
| | for BS in 4K 1M |
| | do |
| | for JOBS in 1 4 |
| | do |
| | FIO_LOG="$(fio --name=test01 --filename=fio${JOBS}x${BS} --numjobs=${JOBS} --bs=${BS} ${ALLGEMEINE_OPTIONEN})" |
| | echo "${FIO_LOG}" > fio${JOBS}x${BS}.log |
| | AUSGABE="$(echo "${FIO_LOG}" | egrep -i 'read|write' | fgrep -i iops | sed 's/[,]/ /g')" |
| | echo "# ${JOBS}x ${BS} / read: $(echo "${AUSGABE}" | fgrep -i read | tr -s ' ' '\n' | fgrep -i bw=) $(echo "${AUSGABE}" | fgrep -i read | tr -s ' ' '\n' | fgrep -i ops=) / write: $(echo "${AUSGABE}" | fgrep -i write | tr -s ' ' '\n' | fgrep -i bw=) $(echo "${AUSGABE}" | fgrep -i write | tr -s ' ' '\n' | fgrep -i ops=)" |
| | done |
| | done |
| | </file> |
| | |
| | |
| | ===== fio-3.0 ===== |
| | |
| | In dieser Version wurde die Unterstützung für Ceph-RBD mit eingebaut. |
| | |
| |