diff --git a/misc/scaling-governor.sh b/misc/scaling-governor.sh new file mode 100644 index 00000000..cedd41a0 --- /dev/null +++ b/misc/scaling-governor.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +set -e +show_menu(){ + CL=`echo "\033[m"` + GN=`echo "\033[32m"` + BL=`echo "\033[36m"` + YW=`echo "\033[33m"` + fgred=`echo "\033[31m"` + IP=$(hostname -I) + ACSG=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors) + CCSG=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor) + echo -e "${YW}Proxmox IP ${BL}${IP}${CL}" + + echo -e "\n${YW}Available CPU Scaling Governors + ${BL}${ACSG}${CL}" + + echo -e "\n${YW}Current CPU Scaling Governor + ${BL}${CCSG}${CL}" + printf "\n${BL}********** ${YW}CPU Scaling Governor Selector${CL} ${BL}********${CL}\n" + printf "${BL}**${YW} 1)${GN} Switch to ${BL}conservative${CL}${GN} CPU Scaling Governor ${CL}\n" + printf "${BL}**${YW} 2)${GN} Switch to ${BL}ondemand${CL}${GN} CPU Scaling Governor ${CL}\n" + printf "${BL}**${YW} 3)${GN} Switch to ${BL}userspace${CL}${GN} CPU Scaling Governor ${CL}\n" + printf "${BL}**${YW} 4)${GN} Switch to ${BL}powersave${CL}${GN} CPU Scaling Governor ${CL}\n" + printf "${BL}**${YW} 5)${GN} Switch to ${BL}performance${CL}${GN} CPU Scaling Governor ${CL}\n" + printf "${BL}**${YW} 6)${GN} Switch to ${BL}schedutil${CL}${GN} CPU Scaling Governor ${CL}\n" + printf "\n ${fgred}NOTE: Settings return to default after reboot${CL}\n" + printf "\n Please choose an option from the menu and press [ENTER] or ${fgred}x to exit. ${CL}" + read opt +} +clear +show_menu +while [ $opt != '' ] + do + if [ $opt = '' ]; then + exit; + else + case $opt in + 1) echo "conservative" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + clear + show_menu + ;; + 2) echo "ondemand" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + clear + show_menu + ;; + 3) echo "userspace" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + clear + show_menu + ;; + 4) echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + clear + show_menu + ;; + 5) echo "performance" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + clear + show_menu + ;; + 6) echo "schedutil" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + clear + show_menu + ;; + x)exit; + ;; + \n)exit; + ;; + *)clear; + show_menu; + ;; + esac + fi + done