%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%として使用すると、top
CPU使用率は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%である理由を知りたいかもしれません。