¿Qué significa el porcentaje de CPU?

11

Estoy viendo el porcentaje de utilización de mi CPU por un proceso. ¿Cómo utiliza un proceso solo un 50% de CPU? ¿No utiliza un proceso 100%, luego 0%, luego 100%? No es como cualquier otra instrucción es un programa diferente.

Anthony D
fuente
1
¿Tienes un procesador dual por casualidad?
Definitivamente una pregunta para SuperUser.
Noldorin

Respuestas:

16

Solo sondea un total de aproximadamente una vez por segundo. Estás viendo cuánto del último segundo usó.

Si ve una CPU al 50% por un tiempo, lo más probable es que esté usando el 100% de una CPU en un sistema de doble CPU.

Joel Coehoorn
fuente
44
"un núcleo de un sistema de doble núcleo" ... o incluso una sola CPU con 'hyperthreading'.
@ChrisW: arreglado.
Joel Coehoorn el
Los porcentajes de uso de la CPU a menudo se informan del 100% para cada CPU individualmente, por lo que la cantidad total de energía de la CPU que se utilizará en un sistema de doble núcleo es 200%, en un núcleo cuádruple 400%, etc.
David Z
No en el administrador de tareas de Windows no lo son.
Joel Coehoorn
11

Técnicamente tienes razón. En cualquier momento, la CPU se está utilizando o no se está utilizando. Pero mostrar eso en un gráfico no sería muy útil, por lo que el gráfico promedia la utilización de la CPU durante un período de tiempo, probablemente cada segundo.

Eric Petroelje
fuente
3

El sistema operativo programa el proceso para un cierto período de tiempo. Entonces, si el proceso está programado para (digamos) 1 ms de 10 ms, entonces usará un 10% de CPU.

Es un poco contradictorio, ya que (en un sistema de CPU de un solo subproceso), el proceso se está ejecutando o no. es decir, está utilizando 100% o 0%. El porcentaje que ve se mide en una ventana de tiempo y es una medida del sistema operativo que asigna ranuras de tiempo a su proceso para ejecutar.

Tenga en cuenta que su proceso no contribuirá a esto si está accediendo a E / S. Entonces, si está haciendo un gran cálculo, registrará el 100% (suponiendo que no se ejecute nada más). Si luego espera un paquete de red / acceso al disco, etc., la cifra de su CPU disminuirá, a pesar de que su proceso todavía se está ejecutando.

Brian Agnew
fuente
2

En un nivel muy bajo, básicamente tienes razón. En cualquier instante dado, el procesador está ejecutando una instrucción para un proceso determinado o no lo está.

Pero su sistema operativo se encuentra entre sus procesos y el procesador, lo que hace que compartan tiempo. El porcentaje que ve es el porcentaje de tiempo de procesamiento reciente que el sistema operativo ha otorgado a ese proceso.

tim
fuente
1

Se basa en el tiempo promedio. A pesar de que todos los subprocesos pueden tener la misma parcela de tiempo de CPU (según la prioridad), los subprocesos solo pueden decir "gracias pero estoy inactivo" y pasar su turno al siguiente subproceso. Es por eso que los programas no siempre usan el mismo% de tiempo, y la mayoría de los programas consumen 0% de CPU, y los programas que realmente necesitan CPU pueden tomar cerca del 100% de tiempo por sí mismos.

¿Por qué tiene un límite del 50%? Probablemente tenga dos núcleos de CPU, y está usando solo uno.

O, como se sugirió, está usando hyperthreading, pero no sé cómo se comporta exactamente.

Havenard
fuente
0

Su programa podría estar haciendo muchas E / S (lecturas / escrituras en disco o red). Eso mantendría el programa ocupado pero necesitaría poco o nada de tiempo de CPU.

Mike dos
fuente
0

La utilización del sistema se muestrea y promedia, lo cual es lo único sensato que hacer.

Por ejemplo, se mantiene un registro de cuánto tiempo se ejecutó un proceso / subproceso durante 1 segundo. Si pasó 1 segundo en la CPU, eso es 100% de CPU (o 50% si tiene 2 CPU, etc.), si pasó 100 ms, eso es 10% de utilización de CPU.

nos
fuente