Come può un contatore Perfmon "% Processor Time" essere superiore al 100%?


9

Il contatore, Process(sqlservr)\% Processor Timesi aggira intorno al 300% su uno dei miei server di database. Questo contatore riflette la percentuale di tempo totale impiegato da SQL Server in esecuzione sulla CPU (modalità utente + modalità privilegio). Il libro, Sql Server 2008 Internals and Risoluzione dei problemi , afferma che qualsiasi cosa superiore all'80% è un problema.

Come è possibile che quel contatore superi il 100%?

Risposte:


21

Esistono due contatori con lo stesso nome:

Process\% Processor Time: La somma del tempo del processore su ciascun processore

Processor(_Total)\% Processor Time: Il totale per tutti i processori

La tua domanda indica che stai utilizzando il primo contatore, il che significa che il suo valore massimo è 100% * (no di CPU).

Quindi se hai 4 CPU, il massimo totale è del 400% e l'80% è effettivamente (400 * 0,8 =) 320% (e per 8 CPU è il 640%, ecc. Ecc.)


Sì! Questo è tutto. Ho 8 CPU. Quindi il mio utilizzo totale della CPU sqlservr è attualmente del 37% circa. E questo significa che tutto è normale. Grazie, @Farseeker!
Bill Paetzke,

In qualsiasi momento Ho avuto domande simili quando ho iniziato a usare perfmon su sistemi a più CPU.
Mark Henderson,

2
Il numero di CPU include l'hyperthreading? Ad esempio, se il mio computer è quad core e ho hyperthreading, dovrei considerare 4 proc o 8?
Matthew Rodatus,

1
C'è un modo per trovare l'utilizzo del processore di un singolo processo con un valore compreso tra 0 e 100% (ovvero: mostra il carico di diffusione su tutte le CPU)? Preferirei non fare la divisione da solo
Jeroen Vannevel,

0

Questo valore viene calcolato sulla linea di base di (No of Logical CPUS * 100), quindi sarà calcolato su una base di oltre 100.

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.