web-dev-qa-db-ja.com

CPUガバナーは、負荷がかかると自動的に「パフォーマンス」に変わります

Xubuntu 18.04 LTSを搭載したLenovo T570を使用しています。私の現在の問題は、私のcpu速度のステップが一種の行き当たりばったりであり、それが最善と考えるものは何でもすることです。

サンプル:IDEを実行し、ビルド時にCPU負荷が増加すると、ガバナーが自動的に変更されます。プロジェクトのコンパイル中に次の呼び出しで瞬間を捉えました:

martin@martin-ThinkPad-T570:~$ while cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor; do sleep 1; done
powersave
powersave
performance
performance

cpufreq-infoは私にこれを告げます:

martin@martin-ThinkPad-T570:~$ cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.25 GHz.
analyzing CPU 1:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.36 GHz.
analyzing CPU 2:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 2
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.26 GHz.
analyzing CPU 3:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 3
  CPUs which need to have their frequency coordinated by software: 3
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.36 GHz.

見てください

現在のポリシー:周波数は3.50 GHz〜3.50 GHzの範囲内である必要があります。ガバナーの「パフォーマンス」は、使用する速度を決定する場合があります

その後、省電力に戻るために、小さなスクリプトを使用します。

martin@martin-ThinkPad-T570:~$ cat cpu_freq_save.sh 
#!/bin/bash
Sudo cpufreq-set -g powersave -c 0 --min 400MHz
Sudo cpufreq-set -g powersave -c 1 --min 400MHz
Sudo cpufreq-set -g powersave -c 2 --min 400MHz
Sudo cpufreq-set -g powersave -c 3 --min 400MHz

これにより、最小周波数とガバナーがリセットされますが、ガバナーと最小周波数が再び変更されるたびに、IDEでコンパイルし直すとすぐに。

自動変更を無効にするにはどうすればよいですか?

PS:詳細が必要な場合は、どこにあるか教えてください。提供します

1
WarrenFaith

cpufreqdは、次でインストールされる周波数管理デーモンです。

Sudo apt install cpufreqd

設定ファイル cpufreqd.conf を使用して頻度を変更します。ガバナーが「パフォーマンス」に変化することがわかる2つのセクションがあります。

[Profile]
name=hi_boost
minfreq=0%
maxfreq=100%
policy=performance

# full power when AC
[Rule]
name=AC_on
ac=on                   # (on/off)
profile=hi_boost

バッテリー充電器が外されていない限り、「省電力」に変化したときを理解するのは困難です。

カーネル3.4以降 cpufreq がカーネルに組み込まれ、自動的にロードされます。 thermaldと呼ばれる周波数管理デーモンが含まれています。そのため、もうcpufreqdを使用する必要はなく、システムで競合している可能性があります。

バッテリ電源でさらにカスタマイズするために、最近ではtlpパッケージが一般的に使用されています。

1

私はさまざまなことを試してみて、システムからcpufreqdを削除してしまい、cpufrequtilsをインストールしたままにしただけで、ガバナーがロード時に切り替えられなくなりました。

1
WarrenFaith

Intel_pstateドライバーを無効にすることが目的の場合は、カーネルarg intel_pstate=disable

Intel_pstateドライバーはCPUがどのように動作するかの詳細を知っており、一般的なACPIソリューションよりも優れているため、これはおそらくあなたにとって最善の利益にはなりません。 Intelは、intel_pstateの「powersave」は、一般的なacpiガバナーよりも「パフォーマンス」が高く、一部のタスクを高い周波数で実行すると、低い周波数よりも消費電力が少なくなると主張しています。算術的なものですが、すべてのタスクに当てはまるわけではありません。メモリから何かをロードします。

あなたができる最善のことはそれを無視して、intel_pstateドライバーにその仕事をさせ、 TurboBoostテクノロジーの使用を許可することです 電力定格、温度定格、および電流制限に基づいて周波数を自動的に調整するチップに組み込まれています

あなたが持っているように見える Core i5 7300U などの最新のIntelプロセッサーの場合(モデルには言及していませんが)、周波数はプロセッサー自体とP状態によって制御されますソフトウェアにさらされると、パフォーマンスレベルに関連します。周波数を単一の周波数に設定できるという考えは、Intel Coreプロセッサーのフィクションです。スケーリングドライバーが単一のP状態を選択した場合でも、プロセッサが実行される実際の周波数は、プロセッサ自体によって選択されます。

出典:

https://unix.stackexchange.com/questions/121410/setting-cpu-governor-to-on-demand-or-conservative

https://www.cnet.com/products/lenovo-thinkpad-t570-15-6-core-i5-7300u-8-gb-ram-256-gb-ssd-20h9000uus/

https://en.wikichip.org/wiki/intel/core_i5/i5-7300u

1
Elder Geek