LinuxでCPU速度をチェックする正しい方法は何ですか?

LinuxでCPU速度をチェックする正しい方法は何ですか?

私のCPUに関する情報を出力する2つのコマンドが見つかりました。cat /proc/cpuinfolscpu/proc/cpuinfo私のCPU速度は2.1Ghzなのにlspcu3167Mhzだと思います。どちらが正しいですか?

cat /proc/cpuinfoこれは私のプロセッサ速度の正確な出力です。

model name  : Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz

ソースlscpu:

CPU MHz:               3225.234

(何らかの理由でlscpu出力が毎回異なり、3100~3300MHzの間で様々)

答え1

各コアの現在の速度を表示するには、次の手順を実行します。

watch -n.1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

メモ:

これは、Intel XeonシリーズなどのサーバーCPUには適用されません。そのような機械では、基本周波数のみが表示されます。ターボ周波数を表示するには、cpupowerまたはTurbostatが必要です。 @Maxim Egorushkinの回答を参照してください。

1秒未満の間隔でコマンドがwatch機能しない場合は、次のように間隔を変更してください。

watch -n1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

cpu speed各コアのパフォーマンスをリアルタイムで表示します。

watch上記のコマンドの速度変更は、次のコマンドが有効になっているSpeedStep場合(Cool'n'Quietfor AMD)、次のコマンドを1回以上実行して他の端末で表示できます。

echo "scale=10000; 4*a(1)" | bc -l &

(このコマンドは最大10,000の位置をbc計算します。)pi

答え2

i7zIntel i3、i5、およびi7ベースのCPUには、すべてのCPUコアの現在の速度を表示する専用のツールがあります。

マニュアルページ(説明)から:

i7zはオプションなしでncursesベースのi7zプログラムを実行します。 i7zは、Nehalems、Sandy Bridge、Ivy Bridgeなど、Intel i3、i5、i7ベースのコアプロセッサのC状態と温度を印刷します。

Ubuntuベースのディストリビューションの場合は、次のコマンドを実行してインストールできます。

sudo apt-get install i7z

次に実行します(ツールはsudoとして実行する必要があります)。

sudo i7z

答え3

これIntel Core i7-4600Uプロセッササポートするターボ技術。基本周波数は2.10GHz、最大ターボ周波数は3.30GHzです。これは意味する、

  • Turbo Boostが無効になっている場合(BIOS設定メニューから)、CPUは常に2.10 GHzで動作します。
  • Turbo Boostが有効になっていて1つのコアのみが動作している場合、CPUは最大3.30 GHzの周波数で動作します。
  • Turbo Boostがイネーブルで、すべてのコアが動作している場合、CPUは2.10 GHzで動作します。

現在の周波数を取得

Turbo Boostが有効になっているかどうか、および現在の周波数が何であるかを確認するには、を使用できますcpupower frequency-info。たとえば、Turbo Boostが有効になっている古いIntel Core i5-660の場合、次の情報を入手できます。

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
              The governor "ondemand" may decide which speed to use
              within this range.
  current CPU frequency is 1.87 GHz.
  cpufreq stats: 3.47 GHz:82,67%, 3.33 GHz:0,00%, 2.53 GHz:0,00%, 1.87 GHz:0,06%, 1.20 GHz:17,28%  (3)
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

この情報は、ハードウェア制限(1.20 GHz - 3.47 GHz)、可能な周波数(3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz)、および現在の周波数(1.87 GHz)を表します。これらの周波数に関する技術情報は、以下にあります。インテルのウェブサイト

TurboBoostが無効な場合の頻度

Turbo Boostが無効になっているときに同じコマンドを実行した場合の違いに注意してください。セクションではboost state support、値はです。ここでCPUは​​常に名目/最小(1.20 Ghz)です。SupportedActiveno

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.20 GHz.
  cpufreq stats: 3.47 GHz:40,86%, 3.33 GHz:0,01%, 2.53 GHz:0,06%, 1.87 GHz:0,22%, 1.20 GHz:58,85%  (493)
  boost state support:
    Supported: no
    Active: no
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

BIOSまたは他の方法を使用してTurbo Boostを無効にできます。Linuxオプション/コマンド。これカーネルサポートこの/sys/devices/system/cpu/cpufreq/boostファイルを使用して有効/無効にできます。

答え4

CPUに関する情報を取得するには、次のコマンドを入力します。

dmidecode -t processor | grep -i mhz

関連情報