私たちが作業する小さなクラスターがあり、それを管理します。ノードはCentOS 7.5を実行します。私たちの古いノードはXeon E5 v4 CPUを使用し、ほとんどが E5-2699 v4 です。古いノードでは、Intel Turbo Boostは正常に動作し、CPUの仕様で指定されているように、CPUの個々のコアは最大ターボ周波数まで自由にランプアップできます。
問題は、新しいシステムにあります。それらのほとんどは Xeon Gold 6152 CPUを搭載しています。それらはベース周波数(2.1 GHz)までしか上昇せず、それを超えることはありません。 lscpu
コマンドは、これがCPUの最大速度であることも示していますが、最大値は3.7 GHz(Maximum Turbo)であることを示している必要があります。
問題はスピードコントロールドライバーに関係しているのではないかと思います。古いシステムでは、コマンドcpupower frequency-info
は、ドライバーが「intel_pstate」であることを示します。ただし、新しいシステムでは、そのコマンドはドライバーが「acpi-cpufreq」であることを示しています。これは、「専用のCPUが動作しない場合のCPU速度制御のデフォルトドライバー」と私に思わせます。
これまでに行った調査から、acpi-cpufreqはカーネルモジュールであり、intel_pstateはカーネルの一部のように見えることがわかりました。
新しいシステムの速度を適切に制御し、指定された最大ターボ速度に完全にアクセスするには、何ができますか?
BIOS設定でターボが有効になっていることをすでに確認しました。
(ATOM C3955 Processorsでも同じ問題が発生しています。)
少なくとも予備テストでは解決しました。
@silmarilと@Michael Hamptonが示唆したように、問題はカーネルでした。それを4.19.8-1.el7.elrepo.x86_64に更新しました。試したXeon Gold 6152 CPUベースのシステムは、CPUの最大速度として正しい3.7 GHzを報告しています。また、周波数制御ドライバーが「intel_pstate」になったことも報告しています。
私は この記事 の指示に従いましたが、基本的には ELRepo (CentOS/RHELの新しいカーネルやその他のものをコンパイルする)からリポジトリを追加し、最新のものをダウンロードしてインストールします彼らが持っているカーネル。
EDIT:これで、ATOM C3955ベースのシステムもここで使用できます。これに対してテストしました。結果は少しでしたmore ... dubious。lscpu
やcpupower
などのコマンドを使用して確認すると、CPUがまだ最高速度でベースクロック速度になっていることを示しているようです。ただし、高負荷で実行中CPUクロック速度は、コマンドwatch -n.1 'cat /proc/cpuinfo | grep -i mhz'
を使用してCPUの最大ターボで(またはその近くで)表示されます。