私はラップトップでondemand
ガバナーを使用していました。これはCPU使用率に応じてCPU周波数を切り替えるでした。それは何年も非常にニース動作し、3つの非常に重要な利点がありました:
今、私はラップトップ(Lenovo B5400にIntel Pentium 3550M)とシステム(buntu 14.1)の両方をアップグレードしました。
performance
およびpowersave
ガバナーのみが使用可能です。 ondemand
は使用できなくなり、サポートされなくなりました結果として私のシステム:
performance
に戻すが、これは間違っていると思う次の設定を定義する/etc/init.d/cpufrequtils
を編集しようとしました:
ENABLE = "true"
GOVERNOR = "powersave"
MAX_SPEED = "2300000"
MIN_SPEED = "800000"
また、scaling_min_freq
の/sys/devices/system/cpu/cpu0/cpufreq
ファイルを編集して、800000に設定しようとしました。
そして、システムを再起動した後、周波数が2.30GHzから2.30GHzに「スケーリング」されたperformance
モードに戻りました。
私に説明してください:
a)Ubuntu 14.10では、CPUの最小/最大周波数のマスター設定は正確にどこにありますか?
b)古き良きondemand
と同じ結果を達成するための周波数とガバナーの定義方法(可能な限り低い周波数で作業し、重い負荷でのみ上昇したい)
c)そしてもちろん、私が定義したもののリセットを避ける方法。
説明に感謝します。
互換性のあるプロセッサでは、デフォルトでUbuntuはintel_pstate CPU周波数ガバナーを使用しますが、acpi_cpufreq CPU周波数ガバナーを使用していました。
Intel_pstateドライブにはondemand
モードはありませんが、そのpowersave
モードはacpi_cpufreq ondemand
モードと同等でなければなりません。システムは、ブート後約1分で、/etc/init.d/ondemand
スクリプトを介して、デフォルトでpowersave
モードになります。最近では、そのスクリプトはintel_pstateのケースを適切に処理していませんでしたが、今ではすべてのユースケースで修正されているはずです。 参照 。
実際の質問に答えるには:
A.)マスターの最小周波数と最大周波数はパーセント値として保存されます。cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
これらの数値の解釈は、ターボ有効または無効フラグの関数であり、私の意見では、定義に矛盾があります。cat /sys/devices/system/cpu/intel_pstate/no_turbo
私のi7-2600Kの例:min freq 1.6GHz;最大非ターボ3.4GHz;最大ターボ3.8GHz。
したがって、パーセンテージ:
ターボオフ:最大= 100%、最小= 47.1%
ターボオン:最大= 100%、最小= 42.1%
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
そして
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
B。)intel-pstate powersave
モードは、acpi-cpufreq ondemand
モードと同等である必要があります。
C.)何かがおかしいので、あなたの悲しみの原因になります。あなたに似た他のレポートがありました。私自身、根本的な問題を知りませんが、cpufrequtilsとの非互換性の報告もあります。私はそのようなものを使用していないので、それらが真実かどうかわかりません。 intel-pstateドライバーでは、最も原始的なレベルのコントロールのみを使用します。
同様の問題が発生したため、.bashrc
にエイリアスとして(およびroot
として)設定しました。
エイリアスは次のようになります。
alias performance="echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
alias powersave="echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
alias ondemand="echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
その後、powersave
を記述して、BASH
コンソールで省電力オプションを有効にできます。特定のスケーリングガバナーを使用する場合は、/etc/rc.local
に配置します。
#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
for i in `ls -d /sys/devices/system/cpu/cpu*|grep -v cpufreq|grep -v cpuidle`; do echo ondemand > $i/cpufreq/scaling_governor; done
exit 0
おそらく複数のプロセッサがあるので、それに応じて編集してください。私は短いスクリプトを書くのが面倒ですが、あなたがそうするように頼んだら私はそうします:)
編集:スクリプトを/etc/rc.local
に追加しました