MacBook AirにUbuntu 13.04をインストールしました。しばらく試してみた後、マシンが本当に遅く感じたので、CPU周波数をチェックしました。 cpufreq-info、4つのコアすべてで800MHzを報告します(これは最低の設定です)。ガバナーはオンデマンドに設定されています。システムに負荷をかけると(4回ハッシュする小さなスクリプトを実行する)、マシンはグラインドしますが、cpufreq-infoはまだ800MHzを報告しています。周波数を手動で2GHzに設定することで、パフォーマンスの問題を解決できますが、バッテリーのコストがかかります。
これはcpufreq-infoの出力です:
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 2.00 GHz
available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 800 MHz and 2.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
cpufreq stats: 2.00 GHz:5,75%, 2.00 GHz:0,47%, 1.90 GHz:0,00%, 1.80 GHz:0,01%, 1.70 GHz:0,01%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,02%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:93,67% (1388)
analyzing CPU 1:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 1
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 2.00 GHz
available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 800 MHz and 2.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
cpufreq stats: 2.00 GHz:3,17%, 2.00 GHz:0,01%, 1.90 GHz:0,01%, 1.80 GHz:0,00%, 1.70 GHz:0,00%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,01%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:96,71% (1433)
analyzing CPU 2:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 2
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 2.00 GHz
available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 800 MHz and 2.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
cpufreq stats: 2.00 GHz:2,69%, 2.00 GHz:0,00%, 1.90 GHz:0,01%, 1.80 GHz:0,01%, 1.70 GHz:0,01%, 1.60 GHz:0,02%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,02%, 1.20 GHz:0,02%, 1.10 GHz:0,01%, 1000 MHz:0,02%, 900 MHz:0,02%, 800 MHz:97,16% (1194)
analyzing CPU 3:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 3
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 2.00 GHz
available frequency steps: 2.00 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 800 MHz and 2.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
cpufreq stats: 2.00 GHz:3,07%, 2.00 GHz:0,02%, 1.90 GHz:0,01%, 1.80 GHz:0,00%, 1.70 GHz:0,01%, 1.60 GHz:0,01%, 1.50 GHz:0,01%, 1.40 GHz:0,01%, 1.30 GHz:0,01%, 1.20 GHz:0,01%, 1.10 GHz:0,03%, 1000 MHz:0,03%, 900 MHz:0,01%, 800 MHz:96,77% (1004)
Mintの最新バージョンでも同じ問題が発生しました。スケーリングを保守的に設定することが、オンデマンドの動作に最も近いように思えました。
次に、問題が何であるかを見つけました、up_thresholdが非常に高く、95%の負荷に設定されていたので、これは継続的な負荷には問題ありませんが、ほとんどの場合、CPUアクティビティの小さなバーストがあり、CPUが必要です100%の速度にはるかに高速にスケーリングします。 th_upresholdを低く設定することでこれを解決しました(私の場合は75で問題ないようです)。 目的の値を/sys/devices/system/cpu/cpufreq/ondemand/up_threshold
にエコーして変更します
Jupiterに似た省電力アプリケーションはありますか を使用することをお勧めします。
そして、indicator-cpufreqを使用して、現在の周波数を知る必要があります。 indicator-cpufreqのインストール/設定方法を貼り付けたリンクを確認してください
Jupiterに似た省電力アプリケーションはありますか? セクション3)プロセッサーと周波数スケーリング
ondemand Dynamically switch between CPU(s) available if at 95% cpu load
CPUを低く保ち、95%CPU負荷の場合のみ超過
performance Run the cpu at max frequency
conservative Dynamically switch between CPU(s) available if at 75% load
CPUを低く保ち、CPU負荷が75%の場合のみ超過
powersave Run the cpu at the minimum frequency
14.04-16.04にこの問題が発生しました(今日現在)。それを解決するには、UbuntuにBIOS制限を無視するように強制する必要がありました。次は私のために働いた:
GRUBを開く:
Sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT行を置き換えます。
- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable processor.ignore_ppc=1"
GRUBを更新します。
Sudo update-grub
再起動してから:
echo 1 | Sudo dd of=/sys/module/processor/parameters/ignore_ppc
echo 2900000 | Sudo dd of=/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 2900000 | Sudo dd of=/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 2900000 | Sudo dd of=/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 2900000 | Sudo dd of=/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
私のために働いた。 CPUコアの数を確認し、それに応じてすべて更新します。これらの余分な行を/etc/rc.localに入れて、ブートのたびに実行することもできます。
忍者の編集:上記の2900000を次の値に置き換えます。
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq