Skip to content

Instantly share code, notes, and snippets.

@thejohnny
Forked from tabokie/disk_benchmark.sh
Created July 19, 2024 15:40
Show Gist options
  • Save thejohnny/b91baed7a1f7c152f0627a5782213fc9 to your computer and use it in GitHub Desktop.
Save thejohnny/b91baed7a1f7c152f0627a5782213fc9 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -ueo pipefail
TEST_DIR=$1
echo "benchmark disk mounted on" $TEST_DIR
echo "--> write throughput"
sudo fio --name=disk_benchmark --directory=$TEST_DIR --numjobs=8 \
--size=10G --time_based --runtime=60s --ramp_time=2s --ioengine=libaio \
--direct=1 --verify=0 --bs=1M --iodepth=64 --rw=write \
--group_reporting=1
echo "--> read throughput"
sudo fio --name=disk_benchmark --directory=$TEST_DIR --numjobs=8 \
--size=10G --time_based --runtime=60s --ramp_time=2s --ioengine=libaio \
--direct=1 --verify=0 --bs=1M --iodepth=64 --rw=read \
--group_reporting=1
# echo "--> read throughput (clean)"
# clear page cache
# sudo sysctl -w vm.drop_caches=3
# remove time_based so there's no repeated access to same data
# sudo fio --name=disk_benchmark --directory=$TEST_DIR --numjobs=8 \
# --size=10G --runtime=60s --ramp_time=2s --ioengine=libaio \
# --direct=1 --verify=0 --bs=1M --iodepth=64 --rw=read \
# --group_reporting=1
echo "--> write IOPS"
sudo fio --name=disk_benchmark --directory=$TEST_DIR --size=10G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=256 --rw=randwrite --group_reporting=1
echo "--> read IOPS"
sudo fio --name=disk_benchmark --directory=$TEST_DIR --size=10G \
--time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \
--verify=0 --bs=4K --iodepth=256 --rw=randread --group_reporting=1
echo "--> write latency"
sudo fio --name=disk_benchmark --directory=$TEST_DIR \
--filesize=10G --time_based --ramp_time=2s --runtime=1m \
--ioengine=libaio --direct=1 --verify=0 --randrepeat=0 \
--bs=4K --iodepth=2 --rw=randwrite --group_reporting=1
echo "--> read latency"
sudo fio --name=disk_benchmark --directory=$TEST_DIR \
--filesize=10G --time_based --ramp_time=2s --runtime=1m \
--ioengine=libaio --direct=1 --verify=0 --randrepeat=0 \
--bs=4K --iodepth=2 --rw=randread --group_reporting=1
echo "--> fsync"
sudo fio --name=disk_benchmark --directory=$TEST_DIR --filesize=10G \
--time_based --ramp_time=2s --runtime=30s \
--ioengine=libaio --direct=0 --verify=0 -fdatasync=1 \
--bs=4K --iodepth=8 --rw=randwrite --group_reporting=1
echo "--> fsync latency"
sudo fio --name=disk_benchmark --directory=$TEST_DIR --filesize=10G \
--time_based --ramp_time=2s --runtime=30s \
--ioengine=psync --direct=0 --verify=0 -fdatasync=1 \
--bs=4K --rw=randwrite --group_reporting=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment