LinuxでCPU速度を表示する正しい方法は何ですか?


20

CPUに関する情報を出力する2つのコマンドを見つけました:cat /proc/cpuinfolscpu/proc/cpuinfoCPU速度が2.1 Ghzであるのに対し、lspcu3167 Mhzと表示されます。どちらが正しいか?

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

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

そして、これはからですlscpu

CPU MHz:               3225.234

(何らかの理由で、lscpu毎回異なる出力、3100〜3300 MHzで変化)


3
あなたは/proc/cpuinfoまた、言う行が必要cpu MHZ: ...現在の速度であるが。後の2.1 @は基本速度です(ターボブーストなし)。
don_crissti

ターボブーストとは何ですか?そして、これは私の速度が実際に約3.2 GHzであることを意味しますか?
ローハン

2
必要なときにIntelが「ガスを打つ」方法です。当時の実際の速度は確かに3.2 GHz前後だったと思います。たとえば、cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq(ルートとして)cpu0を試すこともできます。
don_crissti

2
Turbo Boostは、使用しているコアの数に応じてプロセッサの周波数を変更するテクノロジーです。使用するコアが少ない場合、周波数を上げてパフォーマンスを向上させ、低温を維持します。あなたは確認することがターボ・ブースト周波数テーブルを、それが増加方法を確認すること。
ハイメ

回答:


34

各コアの現在の速度を確認するには、次を実行します。

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

注意:

watch1秒より短い間隔でコマンドが機能しない場合は、次のように間隔を変更します。

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

これにより、cpu speed各コアのリアルタイムで表示されます。

別の端末から次のコマンドを1回以上実行すると、上記のwatchコマンドで速度の変化を確認できますSpeedStep(有効になっているCool'n'Quiet場合AMD)。

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

(このコマンドはbcpi10000箇所まで計算するために使用します。)


それを機能させるに.は、最初のコマンドでを削除する必要がありましたwatch -n1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""
。– n1k31t4

1
これは気の利いた方法ですが、0.1秒ごとにコマンドを実行することには注意してください。それ自体がCPU速度レポートに影響を与えます。1秒で十分です。
リザード

@Lizardx通常は同意しますが、この場合、CPU速度は1秒間隔よりも速く増減するため、目に見える速度の変化はありません。最新のプロセッサは非常に高速であるため、最初SpeedStepは間隔として1秒を使用すると動作していないと考えました。最低でも、.51が速いほど行きたくない場合に使用する必要があります.1 second。私はまだその速度での速度変化の多くを見逃しているが(
ティモシー・マーティン

1
1秒未満に設定されたタイマーでtopを実行してみてください。CPUの使用状況を視覚的に確認できます。私の推測では、実際に見ているのはCPU速度情報を生成しているシステム、つまりCPU速度出力の生成がCPUの動きを引き起こしているということです。1秒未満は、あなたが見ているCPU速度を直接引き起こし始めることがわかります。たとえば、-d5のtopはCPUの1%です。-d2では、約5%です。CPUがあなたがやろうとしていることをやっていると思うように実際に自分をだましていることに気付くかもしれませんね。シェルへの出力も高価です。
リザード

試してみてwatch -n0.1、うまくいくかもしれません。それに失敗するとwhile true; do cat /proc/cpuinfo | grep MHz; sleep 0.1; clear; done、それは見るよりもちらつきます。
スティーブンルー

7

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

manページから(説明):

i7zは、ncursesベースのi7zプログラムをオプションなしで実行します。i7zは、Intelのi3、i5、i7ベースのCoreプロセッサー(Nehalems、Sandy Bridge、Ivy Bridgeを含む)のC状態と温度を出力します。

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

sudo apt-get install i7z

それを実行するだけです(ツールはsudoで実行する必要があります):

sudo i7z

4
Intel CPUを使用している場合、これが最適なソリューションです。cpuinfoをCat'ingすると、間違ったクロック速度が得られます。ちょっと注意してください。ダッシュを「apt-get」に入れるのを忘れました。
fgblomqvist

まあ...それは私のXeonプロセッサで動作しますが、出力が文字化けするのは、おそらく2つのCPUがあるためです(デュアルXeonマザーボードを持っています)。
アレクシスウィルク

4

インテルCore i7-4600Uプロセッサがサポートしているターボ・ブースト・テクノロジーを。基本周波数は2.10GHz、最大ターボ周波数は3.30GHzです。つまり、

  • (BIOSセットアップメニューで)Turbo Boostを無効にすると、CPUは常に2.10GHzで動作します。
  • Turbo Boostが有効で、コアの1つだけが機能している場合、CPUは最大3.30GHzで機能します。
  • Turbo Boostが有効で、すべてのコアが動作している場合、CPUは2.10GHzで動作します。

現在の周波数を取得する

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)が記載されていることに注意してください。これらの周波数の技術情報は、IntelのWebサイトで見つけることができます。

TurboBoostが無効になっているときの頻度

あなたはターボと同じコマンドを実行したときの違いに注意してください無効になっブースト:でboost state support、セクションの値SupportedActiveしていますno。この場合、CPUは常に公称/最小値(1.20Ghz)になります。

$ 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または一部のLinuxオプション/コマンドを使用して、ターボブーストを無効にできますカーネルのサポートを有効にすることができます/無効に使用して/sys/devices/system/cpu/cpufreq/boostファイルを。


Haypoには、IntelのPステートドライバー、Cステート、ターボブースト、および周波数情報を取得するためのコマンドに関する詳細なブログエントリがあります。
ハイメ

そのリンクは現在切断されています...
ミハイルT.

1
haypoブログエントリのリンクが壊れています。コピーは、Victor Stinnerのメモのパート1パート2にあります。
ハイメ

4

CPU周波数はカーネルに保持されますが、少し「オフ」になる場合があります。あなたはそれらを使用して見ることができます:

$ cd /sys/devices/system/cpu
$ paste <(cat cpu*/cpufreq/affected_cpus) <(cat cpu*/cpufreq/scaling_cur_freq) | column -s $'\t' -t
0  833914
1  800021
2  800086
3  800029
4  800036
5  800460
6  800118
7  800141

CPUを知る必要がない場合は、次の方法を使用するより短い方法を使用します。

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1396354
800058
800050
800024
800005
800017
800001
1392006

この方法は、Raspbianを実行しているラズベリーパイの上に動作するようです
ジョン

3

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

dmidecode -t 4

2
カスピ。今、私はここに4つの異なる数字を見ます
;

また、マシンがアイドル状態のとき、現在の速度は常に大きな数値(3.7GHz)として常に報告されるため、「現在の速度」は誤解を招くようです。
ragerdl

@vonbrand時計を1つ持っている人は、何時かを知っています。2つの時計を持っている人は、決して確実ではありません。
クサラナナンダ

0

情報の使用目的に依存します。cat / proc / cpuinfo`からの出力行は、「アドバタイズされた」速度、パンフレットの速度などです。サーバーAとサーバーBを比較する場合は、これで十分です。システムのワークロードを監視している場合、質問へのコメントと@ gad3rによる回答が注目されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.