CPU周波数スケーリングガバナーは、コアごとに個別に行うのではなく、すべてのコアに対して一度に設定したいと思います。これを行う方法はありますか?
(知事にをエコーするのは簡単/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
だと思いますが、カスタムソリューションを探していません。)
CPU周波数スケーリングガバナーは、コアごとに個別に行うのではなく、すべてのコアに対して一度に設定したいと思います。これを行う方法はありますか?
(知事にをエコーするのは簡単/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
だと思いますが、カスタムソリューションを探していません。)
回答:
私はまだLinux初心者ですが、cpufrequtilsを使用してそれを行うことはできません(Ubuntu OSにはバンドルされていませんが、リポジトリにあります)
sudo apt-get install cpufrequtils
sudo cpufreq-set -r -g performance
-r
フラグは、すべての変更(「すべてのハードウェア関連」)コアを設定するために使用されcpufreq-set
実際、最終的にはシンプルですが必要な機能が不足しています。この投票カウンターが明確に示すように、多くの人々は、その説明が単にそれを完結させるように誤解を招くので、単にそれを認識していません。
私は何度もグーグルで検索したが、それは不可能だと思うので、次のワンライナーをmyに追加した.bashrc
。
function setgov ()
{
echo "$1" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
}
これで、次のように実行できsetgov ondemand
、すべてのコアがオンデマンドガバナーに切り替わります。
Ubuntu 16.04以降の時点で約30秒後にガバナーがデフォルトでpowersaveに戻るため、これを固定する方法(Ubuntu Mateを使用しています)。
この(1行の)コードを入力します(前の回答のswitch87のご厚意によります)。
sleep 60 && bash -c 'for i in {0..7}; do cpufreq-set -c $i -g performance; done'
ディレクトリ内のファイルに
/etc/rc.local
私のものは「exit 0」の上の行であり、コメントされたものの下にコメントがありません。
知らない人のための「rc.local」は、コマンドをsudoとして実行します。ガバナーを変更するためのコマンドは、sudoとして実行する必要があります。
ガバナーはpowersaveにリセットし、60秒後にコードをsudoとして実行してパフォーマンスに戻します。
「コピーするコード内の」「60」を、コマンドを遅らせる必要がある時間(秒単位。60= 60秒= 1分)に変更し、「コマンド」部分の「パフォーマンス」を必要なガバナーに変更します。への変更。
私が何時間も探し続けたうちに、これに対するこれ以上の恒久的な修正は見つかりません。これが私が見つけた最良の修正である場合、節電状態になるのは数分ですよね?右。
最善の修正方法ではありませんが、省電力機能への切り替えを少し行った後、ある程度永続的になります。すぐに起動してゲームや何かにジャンプしたい場合は、単にコードを入れてから省電力モードに切り替えるか、タイミングを下げる必要があります(所要時間によって異なります)すべてを起動して、パフォーマンスに正しく切り替えます)。
そして、いつものように、デフォルトに戻すには(最初の場所でデフォルトで節電するようにデフォルト設定していたかもしれない人々のPCの過熱に関するいくつかの問題を見てきました)rc.localからコードを削除し、再起動するか、元に戻しますCPUアイコンインジケータスイッチャーを使用して手動で実行するか、実行します。
sudo /etc/init.d/cpufrequtils restart
端末で再起動します。
これを実行すると、すべてのコアに対して一度に実行できます
sudo cpupower frequency-set --governor performance
switch87の答えに基づいて、すべてのCPUでcpufreq-set-all
他のcpufreq-set
ことを実行できる単純なスクリプトを作成しました。
#!/bin/bash
MAX_CPU=$((`nproc --all` - 1))
for i in $(seq 0 $MAX_CPU); do
echo "Changing CPU " $i " with parameter "$@;
cpufreq-set -c $i $@ ;
done
これは、次のように(chmod +x
もちろん、後に)呼び出すことができます:
cpufreq-set-all -g powersave
または
cpufreq-set-all -f 800Mhz