diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/spdk/scripts/prep_benchmarks.sh | |
parent | Initial commit. (diff) | |
download | ceph-upstream/16.2.11+ds.tar.xz ceph-upstream/16.2.11+ds.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/spdk/scripts/prep_benchmarks.sh')
-rwxr-xr-x | src/spdk/scripts/prep_benchmarks.sh | 73 |
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 000000000..01d8c47da --- /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=$(($(nproc) / 4)) + cpumask="e" + for ((i = 1; i < count; i++)); do + if [ $((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 |