CPUを制限したいです。最大3.9 GHzまで動作するi5-8265Uがありますが、この速度はほとんど必要ありません。
これで、何らかの問題で負荷が高くなると、CPUのパフォーマンスが向上し、ファンでノイズが発生します。
すでに次に設定されていますpowersave
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
試してもuserspace
利用できません
sudo cpufreq-set -f 2.0
これらのCPUを最大2GHzに制限する方法は?
答え1
BIOSにこれらの設定がない場合、Linux用のソリューションはここでうまく機能します。http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html
Turbo Boostを切り替えるために、GitHubでこのスクリプトの拡張バージョンを作成しました。
https://github.com/rubo77/intel-turbo-boost
旧バージョン:
スクリプトを作成してください/usr/local/sbin/turbo-boost.sh
。
#!/bin/bash
is_root () {
return $(id -u)
}
has_sudo() {
local prompt
prompt=$(sudo -nv 2>&1)
if [ $? -eq 0 ]; then
# has_sudo__pass_set
return 0
elif echo $prompt | grep -q '^sudo:'; then
# has_sudo__needs_pass"
return 0
else
echo "no_sudo"
return 1
fi
}
if ! is_root && ! has_sudo; then
echo "Error: need to call this script with sudo or as root!"
exit 1
fi
modprobe msr
if [[ -z $(which rdmsr) ]]; then
echo "msr-tools is not installed. Run 'sudo apt-get install msr-tools' to install it." >&2
exit 1
fi
if [[ ! -z "$1" && "$1" != "toggle" && "$1" != "enable" && "$1" != "disable" ]]; then
echo "Invalid argument: $A" >&2
echo ""
echo "Usage: $(basename $0) [disable|enable|toggle]"
exit 1
fi
A=$1
cores=$(cat /proc/cpuinfo | grep processor | awk '{print $3}')
initial_state=$(rdmsr -p1 0x1a0 -f 38:38)
for core in $cores; do
if [[ $A == "toggle" ]]; then
echo -n "state was "
if [[ $initial_state -eq 1 ]]; then
echo "disabled"
A="enable"
else
echo "enabled"
A="disable"
fi
fi
if [[ $A == "disable" ]]; then
wrmsr -p${core} 0x1a0 0x4000850089
fi
if [[ $A == "enable" ]]; then
wrmsr -p${core} 0x1a0 0x850089
fi
state=$(rdmsr -p${core} 0x1a0 -f 38:38)
if [[ $state -eq 1 ]]; then
echo "core ${core}: disabled"
else
echo "core ${core}: enabled"
fi
done
それを提供
chmod +x /usr/local/sbin/turbo-boost.sh
今電話してください。
sudo turbo-boost.sh disable
sudo turbo-boost.sh enable
sudo turbo-boost.sh toggle
起動時にターボブーストを自動的に無効にします。
起動後1分後に自動的に起動するには、パスワードなしで実行を許可します/etc/sudoers
。
# Allow command for my user without password
my_username_here ALL = NOPASSWD: /usr/local/sbin/turbo-boost.sh
次に、60秒の遅延でsystemd起動スクリプトを作成します。
スクリプトの生成/etc/systemd/system/turbo-boost-disable.service
:
[Unit]
Description=disables turbo-boost
[Service]
TimeoutStartSec=infinity
ExecStartPre=/bin/sleep 60
ExecStart=/usr/local/sbin/turbo-boost.sh disable
[Install]
WantedBy=default.target
システムアップデート:
sudo systemctl daemon-reload
sudo systemctl enable turbo-boost-disable
デスクトップにトグルボタンを追加する
ターボを手動でより頻繁に制御したい場合は、デスクトップにボタンを追加できます。
sudo gedit /usr/share/applications/toggle-turbo-boost.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Name=toggle turbo-boost
Icon=/usr/share/icons/Humanity/apps/64/gkdebconf-icon.svg
Exec=sudo /usr/local/sbin/turbo-boost.sh toggle
X-MultipleArgs=false
Categories=GNOME;GTK;
StartupNotify=true
GenericName=Toggle Turbo-Boost
Path=/tmp/
- SUPERを押して「Toggle Turbo Boost」を検索すると、アイコンが表示されます。
- Enterキーを押して実行するか、お気に入りに追加を右クリックすると、クイック実行バーにボタンが追加されます。