web-dev-qa-db-ja.com

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

CPU負荷について学んでいると、それがコアの数に依存することを知りました。 2つのコアがある場合、負荷2はCPU使用率を100%にします。

だから私はコアを見つけようとしました(私はすでにシステムに2つのコア、4つのスレッド、つまり2つの仮想コアがあることを知っています プロセッサについてはここをチェックしてください )。だから、私は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:

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

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

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

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

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

30

「CPU」、「プロセッサ」、「コア」という言葉は、やや混乱する方法で使用されています。それらはプロセッサのアーキテクチャを指します。コアは、汎用プロセッサを実装する最小の独立したユニットです。プロセッサはコアの集まりです(一部のARMシステムでは、プロセッサはそれ自体がコアの集まりであるクラスタの集まりです)。チップには1つ以上のプロセッサを含めることができます(x86チップにはこの意味でのシングルプロセッサprocessor)。

ハイパースレッディングとは、コアの一部が複製されることを意味します。ハイパースレッディングを備えたコアは、2つの「仮想コア」の集まりとして提示される場合があります。つまり、各コアは仮想ではなく、複数が仮想であるということです。これらは実際には個別のコアではなく、他のコアが存在する間、待機する必要がある場合があるためです。共有パーツを利用する。

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

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

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

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

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

最初の質問に答えるだけです。 cat /proc/cpuinfoの出力では、次の情報を確認できます:-

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

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

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

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

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

まあ、すべてのアクティブコアはターボブーストされています。やあバディ、あなたは私たちの最愛の人 Wikipedia によって例をチェックアウトしているはずです。計算についても説明しました。

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

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

lscpu | grep Hz
13
beginer

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

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
9
user220402

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

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

両方の測定は関連していますが、まったく同じではありません。

0
guntbert