2009-05-08 9 views
11

Ho alcuni servizi WCF che sono ospitati in un servizio Windows. Ieri ho guardato Task Manager e notato che il tempo di CPU per il mio processo di servizio di Windows è stato più di 5 ore, mentre la maggior parte di tutti gli altri processi erano a 0.Che cosa è esattamente il tempo della CPU nel task manager?

Che cosa vuol dire?

Dovrei preoccuparmi del fatto che il tempo di CPU è stato di 5+ ore?

risposta

3

CPU Time è un riflesso di quanto tempo il programma spende le istruzioni di esecuzione nella CPU in attesa dell'IO o di altre risorse. Dovresti preoccuparti che siano più di 5 ore?

direi no, alcune cose da considerare sono:

  1. Da quanto tempo questo processo stato in esecuzione?

  2. Avete problemi con le prestazioni del processo o altri processi sulla scatola da cui potrebbe essere sottratta la CPU?

  3. Quali altri processi hai? Sono questi processi attivi che ti aspetteresti di utilizzare la CPU? Per riferimento agli 80 processi che ho circa 20 ho più di 1 secondo del tempo di CPU utilizzato.

Modifica

E 'possibile che il servizio WCF sta rubando CPU dagli altri servizi, è necessario monitorare loro assicurandosi che la loro performance è quello che vi aspettate. Puoi anche avere un senso basato sull'utilizzo totale della CPU. Se per esempio vedi solo il 25% della CPU utilizzata, allora gli altri servizi non dovrebbero essere influenzati; tuttavia, se stai superando il 75% potrebbero essere interessati.

Quando si tratta di monitoraggio, assicurarsi di monitorare nel tempo in modo da poter vedere come le tendenze delle prestazioni, e vi aiuterà a isolare i problemi. Ad esempio il servizio sta funzionando bene ma poi, dopo una distribuzione, inizia lentamente a prendere sempre più CPU (supponiamo che il 10% a settimana). A meno che non seguiate il vostro utilizzo della CPU, potreste svegliarvi un giorno e vedere il vostro servizio funzionare lentamente, che potrebbe essere settimane dopo una distribuzione.

+0

Il processo era in esecuzione da circa 3 settimane. È stato riavviato la notte scorsa e il tempo della CPU è attualmente a 31 secondi. Non abbiamo notato alcun problema di prestazioni: il sito Web che utilizza questi servizi WCF è molto veloce. Abbiamo alcuni servizi Web SOAP ospitati nella stessa casella in IIS, quindi c'era la preoccupazione che il processo WCF potesse rubare la CPU e influenzare le prestazioni degli altri servizi web. –

+3

Hai avuto 5 ore di tempo di CPU su un processo che è stato in esecuzione 504 ore (3 settimane * 7 giorni/settimana * 24 ore/giorno). In modo semplicistico, in media, il tuo processo ha utilizzato l'1% della CPU per tutto il tempo. In realtà, naturalmente, non è così, ci sono volte in cui il tuo servizio utilizza una CPU vicino allo 0% e altre volte ne usa molto di più. Direi che non è nulla di cui preoccuparsi, ma se sei preoccupato, dovresti usare "perfmon" per monitorare i tuoi processi l'utilizzo della CPU nel tempo per determinare se hai un problema. –

13

CPU time è un'indicazione di quanto tempo di elaborazione che il processo è utilizzato dal momento che il processo è iniziato (in Windows:. Collegamento a un Technet article)

Si tratta essenzialmente calcolato:

CPU Time of Process = Process Uptime * CPU Utilization of Process 

Ad esempio, se il processo è in esecuzione da 5 ore e il tempo della CPU è di 5 ore, significa che il processo ha utilizzato il 100% delle risorse della CPU. Ciò può essere una buona o una cattiva cosa a seconda se si desidera mantenere basso il consumo di risorse o se si desidera utilizzare l'intera potenza del sistema.

Se il processo utilizzava il 50% della risorsa della CPU ed è in esecuzione per 10 ore, il tempo della CPU sarà di 5 ore.

1

Se si è preoccupati della quantità di tempo della CPU utilizzata dal processo, è necessario utilizzare perfmon per monitorare l'utilizzo della CPU dei processi per un periodo di tempo prolungato per determinare se si è verificato un problema.

0

Che cosa è esattamente il tempo della CPU nel task manager?

risposta è semplice:

Il tempo totale del processore, in secondi, utilizzato dal processo quanto è stato avviato.

+0

In pochi minuti. Non essere confuso (come lo ero io) da un processo di lunga durata e con poca CPU - per un momento ho pensato che CPU Time era ore: minuti, e che era più lungo del tempo reale da quando ho avviato il processo. Ops. – yoyo

Problemi correlati