web-dev-qa-db-ja.com

Intel SpeedStepが有効な場合、Ubuntuは非常に遅くなります(CPUはフルスピードで使用されません)

I7プロセッサとUbuntu 14.10を搭載したDellノートブックを持っています。 BIOSでSpeedStepを無効にすると、コンピューターは非常に高速になりますが、ファンは非常に頻繁に作動し、バッテリーはすぐに空になります。

SpeedStepをアクティブにすると、Ubuntuが非常に遅くなります。ガバナーをパフォーマンスに切り替えてみましたが、効果はありませんでした。

これはcpufreq-infoが7つのCPUすべてに対して表示するものです。

analyzing CPU 7:
driver: intel_pstate
CPUs which run at the same hardware frequency: 7
CPUs which need to have their frequency coordinated by software: 7
maximum transition latency: 0.97 ms.
hardware limits: 800 MHz - 3.70 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 3.70 GHz and 3.70 GHz.
              The governor "performance" may decide which speed to use
              within this range.
current CPU frequency is 1.17 GHz.

奇妙なことは、周波数が1.2 GHzを超えないことです。 firefoxを起動したり、大きなプロジェクトをコンパイルしたりしました。

これは、lshwのCPU関連の出力です。

 *-cpu
      description: CPU
      product: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz
      vendor: Intel Corp.
      physical id: 43
      bus info: cpu@0
      version: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz
      slot: SOCKET 0
      size: 3581MHz
      capacity: 3581MHz
      width: 64 bits
      clock: 100MHz
      capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc Arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cpufreq
      configuration: cores=4 enabledcores=4 threads=8

Ubuntu 14.04から14.10にアップグレードした後にこの問題が発生しました。

それでは、必要なときにUbuntu 14.10でCPUをフルスピードで使用する方法

更新:intel_pstateを無効にした後、私が何をしても、すべてのCPUは800 MHzで実行されます。アプレットまたはコマンドラインによるガバナーの切り替えは効果がありません。

更新:cpufreqdをインストールした後、/var/log/syslogはループでこれらのメッセージを取得します。

Mar  3 13:00:03 scala cpufreqd: cpufreqd_set_profile     : Couldn't set profile "Performance High" set for cpu0 (2700000-2700000-performance)
Mar  3 13:00:03 scala cpufreqd: cpufreqd_loop            : Cannot set policy, Rule unchanged ("none").

更新:cat /sys/devices/system/cpu/cpu*/cpufreq/bios_limitは、すべてのCPUに対して800000(800 MHz)を出力します。この制限はどこから来ますか?増やす方法は?

4
Witek

この回答は、CPU周波数を制限するBIOSの新たに発見された理由に適用されます。

電源アダプタとバッテリーの状態を確認してください。それらは正常に機能していますか?バッテリーは正常に充電されていますか?ラップトップは正常に動作しますかバッテリーのみ?

通常、電源に問題があるか、電源アダプタを認識しなくなった場合、Dell biosは低いCPU周波数を強制します。

/ sys/devices/system/cpu/cpu */cpufreq/bios_limitの組み込みをバイパスする方法がありますが、これは非常に最後の手段として、最低レベルの保護が行われているという明確な知識がある場合にのみ行う必要があります無効。だからまだ行きません。

12
Doug Smythies

14.04を制御するCPUクロック周波数では、デフォルトでacpi-cpufreqドライバーが使用され、14.10ではデフォルトでintel_pstateドライバーが使用されます。あなたが経験しているのと同様の問題の報告があります。

テストとして、acpi-cpufreqドライバーに切り替えてみてください。次の場合に備えて、/ etc/default/grubファイルのコピーを保存します。

Sudo cp /etc/default/grub /etc/default/grub.original

/ etc/default/grubファイルをSudoとして編集し、このパラメーターをGRUB_CMDLINE_LINUX_DEFAULT行に追加します。

GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"

その行に既に他のパラメーターがある場合は、新しいパラメーターを追加します。例:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_pstate=disable crashkernel=384M-:128M"

ファイルを保存したら、grubを更新します。

Sudo update-grub

コンピューターを再起動します。

Thermaldを実行しているかどうかも確認できます。

Sudo service thermald status

そして、はい、そして簡単なテストのために、それを無効にします(thermaldが無効になっているときは温度を監視する必要があることに注意してください):

Sudo service thermald stop

その後、かなりの負荷の下でCPU周波数が増加する可能性がある場合、/ etc/thermald/thermal-conf.xmlファイルに何か問題がある可能性があります。

2
Doug Smythies