fio - arosh/arosh.github.com GitHub Wiki

fio --direct=1 --ioengine=libaio --iodepth=64 --readwrite=randwrite --bs=16k --numjobs=${JOB} --directory=${DIR} --size=4g --runtime=30 --time_based --ramp_time=2s --unlink=1 --group_reporting -name=${NAME} | tee ${NAME}.log
  • unlink が必要かどうかはよく考えて。次回の実行の最初に fallocate が走る。
  • fsync_on_close と end_fsync が両方必要かも
#!/bin/sh
set -uex

DIR=
IODEPTHs="1 2 4 8 16 32 64"
NUMJOBSs="1 2 4 8"

for NUMJOBS in ${NUMJOBSs}; do
  for IODEPTH in ${IODEPTHs}; do
    NAME="iodepth_${IODEPTH}-numjobs_${NUMJOBS}"
    fio --direct=1 --ioengine=libaio --iodepth=${IODEPTH} --readwrite=randwrite --bs=16k --numjobs=${NUMJOBS} --directory=${DIR} --size=4g --runtime=30 --time_based --ramp_time=2s --group_reporting -name=fio --output-format=json > ${NAME}.json
  done
done
#!/bin/sh
set -ue

DIR=
IODEPTHs="1 2 4 8 16 32 64"
NUMJOBSs="1 2 4 8"

for NUMJOBS in ${NUMJOBSs}; do
  for IODEPTH in ${IODEPTHs}; do
    NAME="iodepth_${IODEPTH}-numjobs_${NUMJOBS}"
    IOPS=$(cat ${NAME}.json | jq '.jobs[0].write.iops')
    echo -n "${IOPS}"
    echo -n -e "\t"
  done
  echo
done

seq write

fio --ioengine=psync --readwrite=write --fsync_on_close=1 --bs=64k --numjobs=1 --directory=${DIR} --size=4g --runtime=60 --time_based --ramp_time=5s --unlink=1 --group_reporting --name=write