私は答えを見つけるためにインターネットで数時間を過ごしました。私が見つけたすべては役に立ちません。 Ubuntu 20.04、カーネル5.4.0-33で動作するIntel i9-9980HKがあります。
問題は、ロード全体でCPUが周波数を2.7 GHzに減らすことです。電力予算を低く保つようです。どんなに努力しても、より速く実行することはできません。摂氏65度以下に保たれ、静かでゆっくり数字を計算します。比較のために、Windowsでは、同じシステムはフルロード時に3〜4 GHz以上で動作します。
私が試したこと:
- 知事をに変更しても
performance
効果はありません。 - 設定。効果
/sys/devices/system/cpu/cpufreq/policyX/energy_performance_preference
はありませんperformance
sudo service thermald stop
。効果はありません。- 増加する
/sys/devices/system/cpu/intel_pstate/turbo_pct
。ルートとしてもアクセスが拒否されます。 - 増加する
/sys/devices/system/cpu/cpufreq/policyX/scaling_min_freq
。効果はありません。
わかりません。それは何がほしいと思うか。ところで/sys/devices/system/cpu/intel_pstate/status
そうですactive
。
修正する。なぜそうなのか分かると思います。有効にすると、intel_pstate
すべての設定(governor
以下のすべての設定/sys/devices/system/cpu/cpufreq
)は無視されます。このようなツールではcpupower
制御できませんintel_pstate
。したがって、問題はintel_pstate
ドライバーをどのように制御するかによって引き起こされます。
答え1
解決策はこれをintel_pstate=passive
カーネルに渡すことです。その後、intel_pstate
ハンドコントロールを再びCPUFreq
。後者はまだintel_pstate
CPUを制御するために使用されますが、intel_pstate
実行される操作については言及しません。その後、最終的にパフォーマンスポリシーを設定できます。ラップトップを完全に静かにすることも、騒々しいが強力にすることもできます。有効にすると、intel_pstate
機械は静かで正常に動作しませんが、常に遅くて騒々しいです。
2年で更新されました
物語にもっと多くがあることがわかりました。問題のコンピュータはギガバイトのラップトップです。やはりGigabyteで新しいラップトップを購入するとき、1つのトリックは役に立ちませんでしたintel_pstate=passive
。私はより深く掘り下げ始め、(i)ノートパソコンがWindows以外のオペレーティングシステムで実行されている場合、Gigabyteのファームウェアはパフォーマンスを制限することを発見しました。 ACPIは_OSIを介して実行されているオペレーティングシステムを知っています。さらに、ラップトップメーカーは、システムの監視とパフォーマンス管理に役立つLinuxカーネルを提供し、小規模ベンダー固有のドライバを作成することがよくあります。カーネルのソースコードを見ると、drivers/platform/x86
Dell、HP、Asus、Lenovo、Fujitsu...についての内容が多いことがわかります。まあ、(ii)Gigabyteはこれに関して何もしません。最初の問題は、acpi_os_name="Windows 2015"
これをカーネルに渡すことで解決できます。パフォーマンスが良くなります。ただし、Gigabyte ノートブックが Linux で実際に動作するには、誰かがそのためのカーネルドライバを作成する必要があります。次のユーザースペースの回避策があります。このプロジェクト、カーネルのデバッグ機能を活用し、組み込みコントローラレジスタに直接値を書き込みます。これは危険であり、ECに関する文書化されていない情報が必要です。代わりに、私たちがしなければならないのは、ファームウェアでWMIのACPIメソッドを呼び出すことです。
答え2
コメントで述べたように質問CPUの設定を変更する方法に関する多くの情報があります。
「ondemand」と呼びますが、他のレギュレータを設定するのはなぜですか(たとえば、 intel_pstate ドライバを使用するとスリープレギュレータを設定します)。このツールは intel_pstate ドライバーより前のバージョンなので、現在までに支配的な周波数スケーリング・ドライバーが acpi-cpufreq ドライバーであり、「ondemand」が優先される Ubuntu 基本レギュレーターだった時代にさかのぼります。
インテルPステータス:LinuxカーネルのCPUパフォーマンス拡張サブシステム(CPUFreq)の一部です。 Sandy Bridgeおよびそれ以降の世代のIntelプロセッサ用の拡張ドライバ。ただし、これらのプロセッサの一部はサポートされない場合があります。 intel_pstateを理解するには、CPUFreqが通常どのように機能するかを理解する必要があります。したがって、CPUのパフォーマンススケーリングを読んでいない場合は、今が読んでいます。
intel_pstate=disable
カーネルブックパラメータを追加して無効にすることができます。詳細は次のとおりです。ここ。