Control CPU frequency and idle settings
This selection of script, config and systemd unit file shall give control over configuring the CPU behaviour with cpupower on startup. Since SuSE does not ship anything we have to write our own...
This commit is contained in:
parent
26789c571d
commit
0b4237805d
2
cpupower/cpupower
Normal file
2
cpupower/cpupower
Normal file
@ -0,0 +1,2 @@
|
||||
CPU_GOVERNOR="performance"
|
||||
CPU_CSTATES_DISABLE_BY_LATENCY="3"
|
||||
25
cpupower/cpupower.examples
Normal file
25
cpupower/cpupower.examples
Normal file
@ -0,0 +1,25 @@
|
||||
ansible -b all -m copy -a "src=cpupower.sh dest=/usr/local/sbin/cpupower.sh"
|
||||
ansible -b all -m copy -a "src=cpupower.service dest=/etc/systemd/system/cpupower.service"
|
||||
ansible -b all -m copy -a "src=cpupower.sh dest=/usr/local/sbin/cpupower.sh mode=0755"
|
||||
|
||||
ansible -b all -m shell -a "systemctl enable --now cpupower.service"
|
||||
|
||||
ansible -b all -m shell -a "cpupower frequency-info | grep governor; cpupower idle-info | grep ^C"
|
||||
|
||||
l3support@uxicasfs01:~/cpupower> ansible -b all -m shell -a "cpupower frequency-info | grep governor; cpupower idle-info | grep ^C"
|
||||
uxicasfs02 | CHANGED | rc=0 >>
|
||||
available cpufreq governors: performance powersave
|
||||
The governor "performance" may decide which speed to use
|
||||
CPUidle driver: intel_idle
|
||||
CPUidle governor: menu
|
||||
C1:
|
||||
C1E (DISABLED) :
|
||||
C6 (DISABLED) :
|
||||
uxicasfs01 | CHANGED | rc=0 >>
|
||||
available cpufreq governors: performance powersave
|
||||
The governor "performance" may decide which speed to use
|
||||
CPUidle driver: intel_idle
|
||||
CPUidle governor: menu
|
||||
C1:
|
||||
C1E (DISABLED) :
|
||||
C6 (DISABLED) :
|
||||
11
cpupower/cpupower.service
Normal file
11
cpupower/cpupower.service
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Configure cpupower related settings
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/default/cpupower
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/sbin/cpupower.sh
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
36
cpupower/cpupower.sh
Normal file
36
cpupower/cpupower.sh
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
CPUPOWER_CONFIG="/etc/default/cpupower"
|
||||
|
||||
if [ -f "${CPUPOWER_CONFIG}" ]; then
|
||||
source "${CPUPOWER_CONFIG}"
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
||||
print_header() {
|
||||
cat << HEADER
|
||||
|
||||
###############################################################################
|
||||
# ${@}
|
||||
###############################################################################
|
||||
HEADER
|
||||
}
|
||||
|
||||
# Set the CPU governor
|
||||
if [ ! "${CPU_GOVERNOR}" == "" ]; then
|
||||
print_header "Setting CPU governor to ${CPU_GOVERNOR}"
|
||||
cpupower frequency-set --governor "${CPU_GOVERNOR}" &> /dev/null
|
||||
cpupower frequency-info
|
||||
else
|
||||
echo "CPU governor is not set."
|
||||
fi
|
||||
|
||||
# Set the Cstate by latency
|
||||
if [ ! "${CPU_CSTATES_DISABLE_BY_LATENCY}" == "" ]; then
|
||||
print_header "Setting CPU CStates by latency to ${CPU_CSTATES_DISABLE_BY_LATENCY}"
|
||||
cpupower idle-set --disable-by-latency "${CPU_CSTATES_DISABLE_BY_LATENCY}" &> /dev/null
|
||||
cpupower idle-info
|
||||
else
|
||||
echo "No CPU Cstates by latency configured."
|
||||
fi
|
||||
Loading…
Reference in New Issue
Block a user