¿Cómo puede usar mi computadora una potencia de procesamiento de PC del 300%?

65

Estoy jugando con un script y me dejé llevar (todavía se está ejecutando en este momento y, sin embargo, mi computadora aún no se ha apagado). Estoy ejecutando 17 iteraciones del script (con la intención de bloquear mi computadora).

Al observar el monitor de actividad, veo que cada proceso de Python tiene un pid único y que parecen ocupar alrededor del 17-20% de mi poder de procesamiento cada uno ... ¿Cómo es eso posible? ¿Mi computadora creció mágicamente 200% de potencia y violó las leyes de la termodinámica en alguna parte?

Ingrese la descripción de la imagen aquí

Frankenmint
fuente
28
300% de una CPU = 3 CPU's.
user253751
77
"Los niveles de potencia son 400%"
Nitish
Me recuerda a todos esos episodios de Star Trek donde los motores Warp se descontrolan ...
Daniel
¡Eso es un overclocking serio!
Andrew Grimm

Respuestas:

101

En OS X, como otros * nixes, la carga de la CPU se mide por núcleo de procesador virtual. Si tiene múltiples, puede tener 200% y más combinados bajo carga completa.

Esto es diferente de Windows y quizás de algunos otros sistemas, donde la carga de la CPU se calcula por CPU completa (o CPU; no recuerdo cómo se comporta cuando se tienen múltiples procesadores físicos).

Vasfed
fuente
21
¡Esta respuesta solo es precisa para algunas plataformas! Por ejemplo, Windows informa la carga total de la CPU, en lugar de como un porcentaje de un solo núcleo.
fabspro
2
Vale la pena señalar que la representación de carga decimal (por ejemplo, 0.5 o 2.4) según lo informado, por ejemplo, por el comando de tiempo de actividad no es la suma de cada porcentaje de uso de núcleo, sino más bien una estimación de cuántos núcleos necesitaría para procesar cada solicitud al instante. No estoy seguro de cuánto normaliza esta aplicación los valores.
Sebb
3
@Sebb el promedio de carga (LA) es el número promedio de procesos en espera de ejecución, pueden estar esperando IO, CPU no necesaria
Vasfed
3
@ Random832 de linux man - man7.org/linux/man-pages/man1/uptime.1.html : "El promedio de carga del sistema es el número promedio de procesos que se encuentran en estado ejecutable o ininterrumpible. Un proceso en estado ejecutable está utilizando la CPU o está esperando utilizarla. Un proceso en estado ininterrumpido está esperando algún acceso de E / S, por ejemplo, esperando el disco ".
Vasfed
44
El promedio de carga de @slebetman no se trata del tiempo de CPU, sino de la longitud de la cola, por ejemplo, consulte serverfault.com/a/524818
Vasfed
81

OS X y Linux y posiblemente otros sistemas operativos UNIX (o más bien las herramientas más comunes en estos sistemas) muestran el uso de la CPU de manera diferente a Windows. En Windows 100% significa " todos los recursos de CPU utilizados". En Linux, significa que un "hilo" (como en Hyper-threading) está completamente ocupado. Como tal, puede llegar hasta (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs)en total.

Aunque no está completamente relacionado, otro hecho interesante: Windows 10 normaliza aún más el uso de la CPU utilizando el estado de aceleración actual de la CPU. Por lo tanto, una CPU de 2 GHz funcionando a 1 GHz solo estará ocupada hasta en un 50%.

Daniel B
fuente
77
Dato interesante. :)
Hennes
77
Y con Turbo Boost, Windows informará que la CPU se está ejecutando más del 100%
Martheen Cahya Paulo
Creo que esa es la forma BSD, no la forma * nix en general. Veo lo mismo en mi Mac y mi caja de FreeBSD.
JDługosz
1
@ JDługosz Estoy bastante seguro de que también es cierto para Linux, al menos para algunas de sus herramientas. Estoy bastante seguro de que se topcomporta de esta manera, por ejemplo.
reirab
12

Como ya se señaló en varias respuestas, Mac muestra el porcentaje de CPU de cada proceso como 'porcentaje de un núcleo', por lo que debe dividirlo por el número de núcleos [incluido HT como 'doble']

Si no está seguro de cuántos núcleos virtuales tiene, Cmd ⌘ 3 aparecerá el panel Historial de CPU de Activity Monitor, donde simplemente puede contar las franjas;)

ingrese la descripción de la imagen aquí

Directamente debajo de donde cortó la imagen está la información que necesita para determinar rápidamente el uso total real para el Sistema :, Usuario: & Inactivo: ahí radica su total simple al 100%

ingrese la descripción de la imagen aquí

Tetsujin
fuente
44
¿En serio? 24 núcleos ???? Apenas tengo 4 :) TIL de hecho gracias por compartir esto !: puu.sh/nNrHU/f2abb55dc7.png
Frankenmint
55
ahh ... sí, es un Mac Pro 5,1, el último de los "ralladores de queso". Xeons duales de 6 núcleos [+ HT];)
Tetsujin
6

El monitor de actividad en realidad no mide la potencia de procesamiento que usa cada aplicación / proceso, solo lo estima usando un algoritmo. Por lo tanto, puede ser inexacto ...

Además, como señala @Vasfed, el consumo de CPU se mide por núcleo de procesador. Múltiples núcleos pueden significar un uso superior al 100% ...

Un geek de vez en cuando se topa con este fenómeno y queda estupefacto hasta que un Superusuario viene en su ayuda ...; D

rahuldottech
fuente
@underscore_d Sí ... pero cuando respondí, solo había otra respuesta. Las otras respuestas (ciertamente mejores) se publicaron más tarde ...
rahuldottech
es justo, debería haber comprobado los tiempos pasados ​​el nivel de "días" ... no es tan malo: p
underscore_d