Cosa significa percentuale di CPU?


11

Sto osservando il mio utilizzo percentuale della CPU da un processo. In che modo un processo utilizza solo il 50% di CPU? Un processo non utilizza il 100%, quindi lo 0%, quindi il 100%? Non è come ogni altra istruzione è un programma diverso.


1
Hai un doppio processore per caso?

Sicuramente una domanda per SuperUser.
Noldorin,

Risposte:


16

I sondaggi ammontano a circa una volta al secondo. Stai guardando quanto dell'ultimo secondo ha usato.

Se vedi una cpu seduta al 50% per un po ', quello che sta probabilmente succedendo è che sta usando il 100% di una cpu in un sistema a doppia cpu.


4
"un core di un sistema dual core" - ... o anche una singola CPU con "hyperthreading".

@ChrisW: risolto.
Joel Coehoorn,

Le percentuali di utilizzo della CPU sono spesso riportate dal 100% individualmente per ogni CPU, quindi la quantità totale di potenza della CPU da utilizzare in un sistema dual core è del 200%, in un quad core 400%, ecc.
David Z

Non nel task manager di Windows non lo sono.
Joel Coehoorn,

11

Tecnicamente hai ragione. In qualsiasi momento, la CPU viene utilizzata o non utilizzata. Ma visualizzarlo in un grafico non sarebbe molto utile, quindi il grafico sta calcolando la media dell'utilizzo della CPU per un certo periodo di tempo, probabilmente ogni secondo.


3

Il sistema operativo pianifica il processo per un determinato periodo di tempo. Quindi, se il processo è programmato per (diciamo) 1 ms su 10ms, utilizzerà il 10% di CPU.

È un po 'controintuitivo, poiché (in un sistema a thread singolo e CPU singola), il processo è in esecuzione o non in esecuzione. cioè sta usando il 100% o lo 0%. La percentuale visualizzata viene misurata in una finestra temporale ed è una misura del sistema operativo che assegna intervalli di tempo al processo da eseguire.

Si noti che il processo non contribuirà a questo se si accede all'I / O. Quindi, se stai facendo un calcolo enorme, registrerai il 100% (supponendo che nient'altro funzioni). Se poi attendi un pacchetto di rete / accesso al disco ecc., La cifra della CPU diminuirà, nonostante il processo sia ancora in esecuzione.


2

A un livello molto basso, hai praticamente ragione. In un dato istante, il processore sta eseguendo un'istruzione per un determinato processo o non lo è.

Ma il tuo sistema operativo si trova tra i tuoi processi e il processore, facendoli condividere il tempo. La percentuale che vedi è la percentuale del tempo di elaborazione recente che il sistema operativo ha concesso quel processo.


1

Si basa sul tempo medio. Nonostante tutti i thread possano avere lo stesso pacchetto di tempo della CPU (in base alla priorità), i thread possono semplicemente dire "grazie ma sono inattivo" e passare al thread successivo. Ecco perché i programmi non utilizzano sempre lo stesso% di tempo e la maggior parte dei programmi consuma lo 0% di CPU, mentre i programmi che richiedono davvero CPU possono impiegare quasi il 100% del tempo per sé.

Perché raggiunge il 50%? Probabilmente hai due core CPU e ne usa solo uno.

O, come suggerito, sta usando l'hyperthreading, ma non so come si comporti esattamente.


0

È possibile che il programma esegua molti I / O (letture / scritture su disco o in rete). Ciò manterrebbe il programma occupato ma richiederebbe poco o nessun tempo CPU.


0

L'utilizzo del sistema viene campionato e mediato, che è l'unica cosa sensata da fare.

Ad esempio un record di quanto tempo viene conservato un processo / thread durante 1 secondo. Se ha speso 1 secondo sulla CPU, questo è 100% CPU (o 50% se hai 2 CPU e così via), se ha speso 100ms pari al 10% di utilizzo della CPU.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.