summaryrefslogtreecommitdiffstats
path: root/src/spdk/scripts/prep_benchmarks.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/spdk/scripts/prep_benchmarks.sh
parentInitial commit. (diff)
downloadceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz
ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/spdk/scripts/prep_benchmarks.sh')
-rwxr-xr-xsrc/spdk/scripts/prep_benchmarks.sh73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/spdk/scripts/prep_benchmarks.sh b/src/spdk/scripts/prep_benchmarks.sh
new file mode 100755
index 00000000..40830114
--- /dev/null
+++ b/src/spdk/scripts/prep_benchmarks.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+function configure_performance() {
+ 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"
+
+ if [ -f "/sys/devices/system/cpu/intel_pstate/no_turbo" ]; then
+ echo -n "Disabling Turbo Boost..."
+ echo -n 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
+ echo "Done"
+ fi
+
+ 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 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"
+}
+
+function reset_performance() {
+ echo -n "Placing all CPUs in powersave mode..."
+ for governor in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
+ echo -n powersave > $governor
+ done
+ echo "Done"
+
+ if [ -f "/sys/devices/system/cpu/intel_pstate/no_turbo" ]; then
+ echo -n "Enabling Turbo Boost..."
+ echo -n 0 > /sys/devices/system/cpu/intel_pstate/no_turbo
+ echo "Done"
+ fi
+
+ echo -n "Enabling irqbalance service..."
+ service irqbalance start 2> /dev/null
+ echo "Done"
+}
+
+if [ "$1" = "reset" ]; then
+ reset_performance
+else
+ configure_performance
+fi