top コマンド実行時の %CPU の理解

top コマンド実行時の %CPU の理解

%CPU私が走るとき、それが何を意味するのか理解しようとしています。top

私の%CPU申し込みはほとんど「400」または「500」にあります。

これはどういう意味なのか知っている人はいますか?

19080 デビッド 20 0 27.9g 24g 12m S 400 19.7 382:31.81 paper_client

lscpu私に次のような出力を与えます。

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               2599.928
BogoMIPS:              5199.94
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

答え1

%CPU --CPU使用量:プロセスで使用されているCPUの割合。デフォルトでは、topこれは単一のCPUの割合として表示されます。マルチコアシステムでは、パーセンテージは100%を超えることがあります。たとえば、3つのコアを60%として使用すると、 topCPU使用率は180%で表示されます。バラよりここより多くの情報を知りたいです。 Shifti実行時にクリックしてtop使用中の使用可能なCPUの総割合を表示することで、この動作を切り替えることができます。

上記の引用の出典

代わりにこれを使用できますhtop


保持しているコアと仮想コアの数に関する質問に答えるには、次の手順を実行します。

結果に応じて、次の操作を行いますlscpu

  • CPU(s)合計32個のコア()があります。
  • それぞれ1つの物理プロセッサを含む2つの物理ソケット()がありますSocket(s)
  • 各プロセッサCore(s) per socketの内部には8つの物理コア()があります。これは、8 * 2 = 16個の実際のコアがあることを意味します。
  • 各物理コアには2つのスレッド(Thread(s) per core)があります。つまり、合計実コア*スレッド= 16 * 2 = 32個のコアがあることを意味します。

したがって、16個の物理コアのうち32個の仮想コアがあります。

また見てくださいこれこれそしてこれ協会。

答え2

これはコアが多いことを意味します。コア1個までは100%です。だから、最も高いことができますnumber_of_cores × 100%

あなたのアプリケーションが400%である理由を知りたいかもしれません。

関連情報