Comprender% CPU al ejecutar el command superior

Estoy tratando de entender qué significa %CPU cuando ejecuto top .

Veo %CPU para mi aplicación como 400 o 500 mayoría de las veces.

¿Alguien sabe qué significa esto?

¿Qué número es un número alto?

19080 david 20 0 27.9g 24g 12m S 400 19.7 382: 31.81 paper_client

lscpu me da el siguiente resultado:

 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 

% CPU – Uso de CPU: el porcentaje de su CPU que está siendo utilizado por el process. Por defecto, top muestra esto como un porcentaje de una sola CPU. En sistemas multi-core, puede tener porcentajes que son mayores que 100%. Por ejemplo, si 3 núcleos tienen un uso del 60%, la top mostrará un uso de CPU del 180%. Mira aquí para más información. Puede alternar este comportamiento presionando Shift i mientras top está ejecutando para mostrar el porcentaje total de CPU disponibles en uso.

Fuente para la cita anterior .

Puede usar htop en htop lugar.


Para responder a su pregunta sobre cuántos núcleos y núcleos virtuales tiene:

De acuerdo con su salida lscpu :

  • Tienes 32 núcleos ( CPU(s) ) en total.
  • Tiene 2 sockets físicos ( Socket(s) ), cada uno contiene 1 procesador físico.
  • Cada procesador tuyo tiene 8 núcleos físicos ( Core(s) per socket ) en el interior, lo que significa que tienes 8 * 2 = 16 núcleos reales.
  • Cada núcleo real puede tener 2 hilos ( Thread(s) per core ), lo que significa que tiene núcleos reales * hilos = 16 * 2 = 32 núcleos en total.

Entonces tienes 16 núcleos virtuales y 16 núcleos reales.

También vea esto , este y este enlace.

Significa que tienes muchos núcleos. Un núcleo al máximo es 100%. Entonces lo más alto que puede ser es number_of_cores × 100% .

Es posible que desee ver por qué su aplicación es 400%.