Benutzer-Werkzeuge

Webseiten-Werkzeuge


fio

Inhaltsverzeichnis

fio

Mit 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:

/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

fio-3.0

In dieser Version wurde die Unterstützung für Ceph-RBD mit eingebaut.

/home/http/wiki/data/pages/fio.txt · Zuletzt geändert: von manfred