web-dev-qa-db-ja.com

Intelが古いオンデマンドとして機能するように知事を設定する方法は?

私はラップトップでondemandガバナーを使用していました。これはCPU使用率に応じてCPU周波数を切り替えるでした。それは何年も非常にニース動作し、3つの非常に重要な利点がありました:

  • ハードウェア温度が低い
  • 静かなファン
  • 必要なときに高性能

今、私はラップトップ(Lenovo B5400にIntel Pentium 3550M)とシステム(buntu 14.1)の両方をアップグレードしました。

  • performanceおよびpowersaveガバナーのみが使用可能です。 ondemandは使用できなくなり、サポートされなくなりました
  • 現在のガバナと最小/最大速度は起動するたびにデフォルトに復元されるため、ファイルの設定で何かが変更されました

結果として私のシステム:

  • まだ知事をperformanceに戻すが、これは間違っていると思う
  • ガバナーが何であれ、cpufreq-infoは "周波数は2.30 MHzおよび2.30 GHz以内でなければならない"を教えてくれますが、利用可能な周波数は800MHzから始まります

次の設定を定義する/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)そしてもちろん、私が定義したもののリセットを避ける方法。

説明に感謝します。

5
kurp

互換性のあるプロセッサでは、デフォルトで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ドライバーでは、最も原始的なレベルのコントロールのみを使用します。

3
Doug Smythies

同様の問題が発生したため、.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に追加しました

1
Pavol Polacko