fio: Add a script to prep a system for benchmarks

Also update the example fio file

Change-Id: I2a9074d524072e95340cc0e87041e87e3bb7d4f8
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/362069
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Ben Walker 2017-04-25 14:04:07 -07:00 committed by Daniel Verkamp
parent dc772e543f
commit be186f641e
2 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,43 @@
[global]
ioengine=./examples/nvme/fio_plugin/fio_plugin
thread=1
group_reporting=1
direct=1
verify=0
norandommap=1
cpumask=1
percentile_list=50:99:99.9:99.99:99.999
[precondition-trim]
description="Trim the entire device"
rw=trim
iodepth=128
bs=1M
[precondition-sequential]
stonewall
description="Sequentially write to the device twice"
rw=write
iodepth=128
bs=128k
loops=2
[4k_randwrite_qd1]
stonewall
description="4KiB Random Write QD=1"
bs=4k
rw=randwrite
iodepth=1
time_based=1
ramp_time=60
runtime=240
[4k_randread_qd1]
stonewall
description="4KiB Random Read QD=1"
bs=4k
rw=randread
iodepth=1
time_based=1
ramp_time=60
runtime=240

41
scripts/prep_benchmarks.sh Executable file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env bash
echo -n "Placing all CPUs in performance mode..."
for governor in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
echo -n performance > $governor
done
echo "Done"
echo -n "Disabling irqbalance service..."
service irqbalance stop 2> /dev/null
echo "Done"
echo -n "Moving all interrupts off of core 0..."
count=`expr $(nproc) / 4`
cpumask="e"
for ((i=1; i<$count; i++)); do
if [ `expr $i % 8` -eq 0 ]; then
cpumask=",$cpumask"
fi
cpumask="f$cpumask"
done
for file in /proc/irq/*/smp_affinity; do
echo "$cpumask" > $file 2> /dev/null
done
echo "Done"
echo -n "Configuring kernel blk-mq for for NVMe SSDs..."
for queue in /sys/block/nvme*n*/queue; do
if [ -f "$queue/nomerges" ]; then
echo "1" > $queue/nomerges
fi
if [ -f "$queue/io_poll" ]; then
echo "1" > $queue/io_poll
fi
if [ -f "$queue/io_poll_delay" ]; then
echo "-1" > $queue/io_poll_delay
fi
done
echo "Done"