Commit be186f64 authored by Ben Walker's avatar Ben Walker Committed by Daniel Verkamp
Browse files

fio: Add a script to prep a system for benchmarks



Also update the example fio file

Change-Id: I2a9074d524072e95340cc0e87041e87e3bb7d4f8
Signed-off-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/362069


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent dc772e54
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
[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 −0
Original line number Diff line number Diff line
#!/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"