/ proc / cpuinfo内のプロセッサの数


26

CPUの負荷について学習しているときに、コアの数に依存することがわかりました。2つのコアがある場合、負荷2でCPU使用率が100%になります。

私はコアを見つけることを試みたので。(2つの仮想コアはので、私はすでにそのシステムは、2個のコア、4つのスレッドを持って知っているプロセッサについてはこちらを確認してください。だから私は走った)cat /proc/cpuinfo どちらが私を与えました

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 1600.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 800.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 3
initial apicid  : 3
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

今、私は完全に混乱しています。2つのCPUコアを備えた4つのプロセッサを示しています。誰でもこの出力を説明できますか?

CPU負荷が3.70になったら、これは最大負荷ですか?それでも、CPUは50%未満でした。

ターボブーストはどうですか?すべてのコアはターボブーストされていますか、それとも物理的なものですか?

現在のCPU周波数を取得して、プロセッサーがターボブーストかどうかを確認するUbuntuの方法はありますか?

負荷は3.70で約100%でした。ただし、IO応答時間のためにCPU使用率は100%ではありませんでした。これは、IOデバイスが最大速度であることを意味するものではありませんが、IOデバイスは100%ビジーであり、IO exを使用するアプリケーションに影響する場合があります。音楽が壊れる可能性があります。


2
あなたは4ではなく2を参照してくださいなぜハイパースレッディングがある
derobert

1
ドキュメントとcpuinfoの両方から、2つのcpuコアがあることがわかります。プロセッサー0と1はコア0にありますが、プロセッサー2と3はコア1にあります(行を見てくださいcore id)。これでphysical idチップが得られます(推測)。ここでは、すべてのプロセッサで0なので、チップは1つだけです。
lgeorget 14

100%... 2または4までのプロセッサの負荷はいくらですか?
マドレンドラサチャン14

ここでプロセッサとは何ですか?
マドレンドラサチャン14

Intelのスレッドの定義(「スレッド、または実行スレッド」は、単一のCPUコアを通過または処理できる命令の基本的な順序シーケンスのソフトウェア用語です)が、2つのコアで仕様に記載されているように、2つのスレッドが実行されている4つのスレッド。実際、合計で4つのスレッドがあり、2つのコアは4のように見えます。Intel®ハイパースレッディングテクノロジーの定義はより明確です。「物理コアごとに2つの処理スレッドを提供します」。 2つのCPUコアのうち1つのチップを搭載
XavierStuvw

回答:


35

「CPU」、「プロセッサ」、および「コア」という言葉は、やや紛らわしい方法で使用されます。プロセッサアーキテクチャを指します。コアは、汎用プロセッサを実装する最小の独立したユニットです。プロセッサはコアの集合体です(一部のARMシステムでは、プロセッサはそれ自体がコアの集合体であるクラスタの集合体です)。チップには1つまたは複数のプロセッサを含めることができます(x86チップには、ワードプロセッサの意味で1つのプロセッサが含まれます)。

ハイパースレッディングとは、コアの一部が複製されることを意味します。ハイパースレッディングを備えたコアは、2つの「仮想コア」の集合として表示されることがあります。つまり、各コアは仮想ではなく、複数は仮想であるということです。共有パーツを利用します。

ソフトウェアに関する限り、ほぼすべての場所で役立つ概念は1つだけです。それは、実行の並列スレッドの概念です。そのため、ほとんどのソフトウェアマニュアルでは、CPUおよびプロセッサという用語は、プログラムコードを実行するハードウェアを意味します。ハードウェア用語では、これは1つのコア、またはハイパースレッディングを備えた1つの仮想コアを意味します。

したがってtop、4つのスレッドを同時に実行できるため、4つのCPUが表示されます。/proc/cpuinfo(その意味で)CPUごとに1つの4つのエントリがあります。processor(数ある数のエントリは)これらの4つのスレッドに対応します。cpuNUMBER/sys/devices/system/cpu

/proc/cpuinfo これらの実行スレッドを実装しているハードウェアに関する情報を取得できる数少ない場所の1つです。

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

これは、cpu0物理コンポーネント(プロセッサ)番号0内の4つのスレッドの1つであり、このプロセッサの2のうちコア0にあることを意味します。


ニースの説明あなたは3つの質問を残しOnce my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%.What about turbo boost ? Are all cores are turbo boosted or only physical ?How to check frequency.
Madhurendra Sachan

@MADTerryどのプログラムが「CPU負荷が3.70だった」と報告しましたか。負荷平均を意味しますか?「CPUが50%未満でした」とはどういう意味ですか?ターボブーストに関しては、私はそれに詳しくはありませんが、なぜすべてがブーストされないのかわかりません。仮想マシンで実行しているのでない限り、すべてのコア物理的です。私の答えで説明するように、「仮想コア」では、仮想コアではなく、それらの分離です。
ジル 'SO-悪であるのをやめる' 14

平均負荷。uptime.by cpu iはcpu usage。を意味し、理由を理解しました。しかし、周波数を確認したり、CPUがターボブーストされているかどうかを確認するにはどうすればよいですか?
マドレンドラサチャン14

私はまた、高レベルのソフトウェアの面で、あなたはむしろ、に興味がある、それを主張するだろうプロセス(参照しますtopuptime)。どのハードウェアユニットがプロセスを処理するかは、最終的に低レベルソフトウェア(コンパイル、オペレーティングシステム)の問題です。cpuinfoレポートは、各物理プロセッサ(ダイ上の複数のCPUの1つ)がマルチスレッドなどの技術的偉業によって計算能力を拡張できるという事実を要約しています。一度に1つのプロセスを処理できる「何でも」をプロセッサと見なします。cpuinfoの者の占める目では、デバイスの機能は、「プロセッサ」の総数につながるん
XavierStuvw

13

最初の質問に答えるだけです。cat /proc/cpuinfoあなたの出力では、次の情報を見ることができます:

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

siblings is 4およびのカウントを確認できますcpu cores is 2cpu cores2であることは、プロセッサのコアの総数であり、指定したインテルのURLで指定されている仕様から確認できます。同様にsiblings、インテルのHTTによって提供されるスレッドの数によって決定されるものもあります。

同様に、物理IDの場合、0プロセッサチップが1つしかないことを示します。コアIDの場合は0 and 1、プロセッサ内に2つのコアがあることがわかります。

更新:他の質問への回答を追加します。

ターボブーストはどうですか?すべてのコアはターボブーストされていますか、それとも物理的なものですか?

すべてのアクティブコアはターボブーストされています。こんにちは、私たちの愛するウィキペディアの例をチェックアウトする必要があります。計算についても説明しました。

Any method in ubuntu to get current cpu freq. if processor is on turbo boost or not.

ターボブーストかどうかの出力で周波数の詳細を確認できますlscpu。そして洗練された出力のために:-

lscpu | grep Hz

短くて簡単な答えですが、残りの3つを説明できますか?
マドレンドラサチャン14

@MADTerryに感謝しますが、私が明確でない他の人は、いくつかの調査を行い、答えを編集します。一方、他の誰かがポップインするかどうかを確認します。
開始者14

1
lscpuコマンドの場合は+1 。
アルダ

8

ターミナルでこれを試すことができます:

sudo lscpu

これにより、CPUの身体的特徴の概要がわかります。ターボブーストの有無については、これはOS自体よりも純粋にハードウェア制御であるため、Intelがプロセッサ速度を調整できるLinux用の特定のドライバーを持たない限り、ターボブーストの状態を確認する確固たるリードはありません(コマンドコードがない限り)あなたの質問に関する手がかりがある場合は、他のフォーラムを確認してください)。

私に関しては、これは上記のコマンドを入力したときに得られるものです。私のAMDはそれがクアッドコアであると言ったが、ここにリストされている私の物理コアは2つだけで、コアごとに2つのスレッドがある(最大4つのコアを追加する)。AMD A10 APUプロセッサー5750mを使用しています。

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 19
Stepping:              1
CPU MHz:               2500.000
BogoMIPS:              4990.51
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3

0

システム負荷とCPU%は、CPU電力の使用状況を測定する2つの異なる方法です。

  • システム負荷:CPUごとに「準備完了」状態にあるプロセスの数-一定期間の平均。最大1 * cpu(4つまでの場合)のシステムは、ほとんどアイドル状態であると見なされます(チェックアウトごとに平均して1人の顧客のみが待機しているスーパーマーケットと比較してください)。おそらく2 * cpuまでの遅れに気付かないでしょう(あなたの場合は8)。
  • cpu%:cpusがプロセスを実行して実際の作業を行う時間。それはレジ係の視点のようなものです-むしろ彼らの監督者-彼らは彼らが常に忙しいことを望んでいます。

両方の測定値は関連していますが、決して同一ではありません。


私は別の質問をしませんでした。すでに記事で読​​んでいます。とにかくあなたの答えは、ジルの答えと矛盾しています。
マドレンドラサチャン

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