ProxmoxHelperScripts/misc/scaling-governor.sh

116 lines
3.3 KiB
Bash
Raw Normal View History

2022-03-25 14:19:34 +01:00
#!/usr/bin/env bash
2023-02-07 18:15:22 +01:00
# Copyright (c) 2021-2023 tteck
# Author: tteck (tteckster)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
2023-01-10 17:16:26 +01:00
function header_info {
cat <<"EOF"
__________ __ __
/ ____/ __ \/ / / /
/ / / /_/ / / / /
/ /___/ ____/ /_/ /
\____/_/ \____/
Scaling Governors
EOF
}
2022-03-25 14:43:55 +01:00
clear
2023-01-10 17:16:26 +01:00
header_info
2022-03-25 14:56:24 +01:00
set -e
2022-03-25 14:28:41 +01:00
while true; do
2022-03-25 16:28:17 +01:00
read -p "View CPU Scaling Governors. Proceed(y/n)?" yn
2022-03-25 14:28:41 +01:00
case $yn in
[Yy]*) break ;;
[Nn]*) exit ;;
*) echo "Please answer yes or no." ;;
2022-03-25 14:28:41 +01:00
esac
done
clear
2023-01-10 17:16:26 +01:00
show_menu() {
CL=$(echo "\033[m")
GN=$(echo "\033[32m")
BL=$(echo "\033[36m")
YW=$(echo "\033[33m")
fgred=$(echo "\033[31m")
header_info
2022-03-25 19:35:40 +01:00
CK=$(uname -r)
2022-03-25 14:19:34 +01:00
IP=$(hostname -I)
# MAC=$(cat /sys/class/net/eno1/address)
2022-03-25 14:19:34 +01:00
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}"
2022-03-25 19:35:40 +01:00
echo -e "${YW}MAC Address ${BL}${MAC}${CL}"
echo -e "${YW}Current Kernel ${BL}${CK}${CL}"
2022-03-25 14:19:34 +01:00
echo -e "\n${YW}Available CPU Scaling Governors
${BL}${ACSG}${CL}"
2022-03-25 14:19:34 +01:00
echo -e "\n${YW}Current CPU Scaling Governor
${BL}${CCSG}${CL}"
2022-03-25 14:58:46 +01:00
printf "\n ${fgred}Only Select Available CPU Scaling Governors From Above${CL}\n \n"
2022-03-25 14:19:34 +01:00
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"
2022-03-25 14:28:41 +01:00
printf "\n Please choose an option from the menu and press [ENTER] or ${fgred}x${CL} to exit."
2022-03-25 14:19:34 +01:00
read opt
}
clear
show_menu
2022-10-30 05:19:48 +01:00
while [ "$opt" != "" ]; do
if [ "$opt" = "" ]; then
exit
2022-03-25 14:19:34 +01:00
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
2022-03-25 14:19:34 +01:00
clear
show_menu
;;
3)
echo "userspace" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
2022-03-25 14:19:34 +01:00
clear
show_menu
;;
4)
echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
2022-03-25 14:19:34 +01:00
clear
show_menu
;;
5)
echo "performance" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
2022-03-25 14:19:34 +01:00
clear
show_menu
;;
6)
echo "schedutil" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
2022-03-25 14:19:34 +01:00
clear
show_menu
;;
x)
exit
;;
\n)
exit
;;
*)
2022-03-25 14:19:34 +01:00
clear
show_menu
;;
esac
2022-03-25 14:19:34 +01:00
fi
done