GNU/Linux >> Tutoriales Linux >  >> Linux

Top dice que se usa el 100 % de la CPU, pero ¿el 50 % de los núcleos están inactivos?

Para ampliar la respuesta de Max:los procesadores con hyperthreading informan dos núcleos al sistema operativo cuando en realidad hay un solo núcleo físico. Linux ve 4 núcleos, pero su procesador tiene 2 núcleos físicos.

El núcleo físico tiene capacidades de programación avanzadas y algunos transistores adicionales para manejar el segundo subproceso, pero para muchas aplicaciones con un uso intensivo del procesador, el hiperprocesamiento no brinda un beneficio real.

En mi campo, comparamos las aplicaciones que se ejecutarán en un sistema y deshabilitamos el hiperprocesamiento en el BIOS si dificulta el rendimiento.

EDITAR:

Si cargo la mitad de los núcleos usando cat /dev/urandom > /dev/null esto es lo que obtengo en un Xeon moderno con CentOS 6:

top - 19:32:38 up 1 day,  8:17,  3 users,  load average: 12.13, 8.73, 4.07
Tasks: 694 total,  13 running, 681 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us, 50.4%sy,  0.0%ni, 49.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  49552656k total,  2693452k used, 46859204k free,   186448k buffers
Swap: 15999992k total,        0k used, 15999992k free,   469560k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                           
21193 root      20   0 98.5m  560  452 R 100.0  0.0   6:23.31 cat                                                                                               
21194 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.76 cat                                                                                               
21195 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.38 cat                                                                                               
21201 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.98 cat                                                                                               
21202 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.62 cat                                                                                               
21203 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.36 cat                                                                                               
21206 root      20   0 98.5m  560  452 R 100.0  0.0   6:20.43 cat                                                                                               
21187 root      20   0 98.5m  560  452 R 99.6  0.0   6:24.45 cat                                                                                                
21204 root      20   0 98.5m  560  452 R 99.6  0.0   6:21.03 cat                                                                                                
21205 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.73 cat                                                                                                
21213 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.09 cat                                                                                                
21214 root      20   0 98.5m  560  452 R 99.6  0.0   6:19.70 cat

Han pasado más de cuatro años y, para ser justos, me olvidé por completo de esta pregunta y solo volví porque vi que había recibido una Pregunta destacada insignia por ello.

El problema era tangencialmente relacionado con hyperthreading, pero como les señalé continuamente a los que respondieron, eso no la causa del 50 % de ralentí.

La causa tenía que ver con una configuración de ticks dinámicos del kernel configurada de manera inapropiada. Estaba ejecutando Gentoo y usando un kernel personalizado. Después de actualizar el kernel, en algún momento a mediados de 2012, el problema se resolvió solo.


Linux
  1. Solucionar problemas de alto uso de CPU en Windows Server

  2. kipmi0 IPMI Kernel Helper 99 %/100 % de alto uso de CPU (pero bajo promedio de carga)

  3. ¿Obtener el uso de la CPU en el script de Shell?

  4. ¿Por qué el uso de la CPU informado por la parte superior en Linux es superior al 100 %?

  5. ps y top dan un uso de CPU diferente

Consejos para la parte superior:Monitoreo de la carga de la CPU en Linux

Cómo encontrar los comandos más utilizados en Linux

Cómo crear una carga de CPU del 100 % en un sistema Linux

Entonces, ¿qué son los núcleos de CPU lógicos (a diferencia de los núcleos de CPU físicos)?

Detectar proceso comiendo CPU sin:Top, Htop, Ps?

Ubuntu dice 13.04 pero Lsb_release dice 12.10?