web-dev-qa-db-ja.com

Debian8.1およびIntelXEON E5-1650v3を使用したcpufrequencyスケーリング

debian 8.1のサーバーでCPUスケーリングを使用せず、常に可能な限り高い頻度で実行したい。

Cpufrequtilsをインストールしました

$ dpkg -l | grep cpufreq
ii  cpufrequtils                   008-1                       AMD64        ...
ii  libcpufreq0                    008-1                       AMD64        ...

ガバナーをperformanceに設定しました

$ cat /etc/default/cpufrequtils 

ENABLE="true"
GOVERNOR="performance"
MAX_SPEED="0"
MIN_SPEED="0"

/etc/init.d/cpurequtils restartと呼ばれます

CPU情報をcpufreq-infoでリストすると、次のような結果が得られます。

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: 0.97 ms.
  hardware limits: 1.20 GHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 1.20 GHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.73 GHz (asserted by call to hardware).

最後の行は、CPUがフルスピードで実行されていないことを示しています。/sysの値を確認すると、同じ結果が得られます。

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
echo "--"
cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

1198203
1199707
2001015
3048828
1551210
1358847
2953808
1982832
1523867
1200253
1654296
3446132
--
1198203
1199707
2001015
2643730
1772695
1358847
2953808
1982832
1523867
1200253
1654296
3446132

私が疑問に思っているのは、多くのハウツーで言及されている「scaling_available_frequencies」という名前のファイルが/ sysにないことです。

ls -1 /sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus
cpuinfo_cur_freq
cpuinfo_max_freq
cpuinfo_min_freq
cpuinfo_transition_latency
related_cpus
scaling_available_governors
scaling_cur_freq
scaling_driver
scaling_governor
scaling_max_freq
scaling_min_freq
scaling_setspeed

適切なカーネルモジュールがすべてロードされます。

$ lsmod | grep cpufre
cpufreq_powersave      12454  0 
cpufreq_userspace      12525  0 
cpufreq_conservative    14184  0 
cpufreq_stats          12782  0 

ここで、scaling_minを次のように設定します。

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

今、私は見るような情報を取得します、それは言う周波数は3.80GHzと3.80GHzの間でなければなりませんしかし実際にはそうではありません:

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: 0.97 ms.
  hardware limits: 1.20 GHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.80 GHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.84 GHz (asserted by call to hardware).

知事の「パフォーマンス」はその仕事をしていないようです。では、CPUをフルスピードで実行させるにはどうすればよいですか?

1
Janning

CPUのP状態は部分的にしか認識されていないようであるため、BIOSを確認する必要がありました。省電力を扱うときに、多くのサーバーBIOS(主にDell)が実際に壊れていることがわかった場合。

したがって、BIOSに入り、CPUの省電力機能を無効にします。有効のままにしておくことをお勧めするのは、C状態(C1E、C6/Eなど)に関するものだけです。 BIOSで電力プロファイルを選択できる場合は、「最大パフォーマンス」を選択します。

2
shodanshok

3.8Ghzはターボブースト周波数のように聞こえます。すべてのコアを常にその速度で実行することはできません。CPUはそれを許可しません(電力バジェットを超えてしまいます)。 CPUはおそらく可能な限り高速で実行されています。

新しいカーネルでは、ガバナーはCPUに何を優先するか(パフォーマンスまたは省電力)を指示するだけで、アクティビティに応じて可能な限り最高の結果を得ようとします。それを行うにははるかに良い立場にあります。

0
GreenReaper