Condividi tramite


Monitorare l'utilizzo della CPU

Monitorare un'istanza di Microsoft SQL Server periodicamente per determinare se le percentuali di utilizzo della CPU sono entro intervalli normali. Se la frequenza di utilizzo della CPU è costantemente elevata può essere necessario eseguire un aggiornamento della CPU o aggiungere più processori. Una valore costantemente elevato di utilizzo della CPU può inoltre indicare la presenza di un'applicazione non progettata o ottimizzata correttamente. L'ottimizzazione dell'applicazione potrebbe ridurre l'utilizzo della CPU.

Una soluzione efficiente per determinare l'utilizzo della CPU consiste nell'usare il contatore Processore:% Tempo processore in Monitoraggio di sistema. Questo contatore consente di monitorare la quantità di tempo utilizzata dalla CPU per l'esecuzione di un thread non inattivo. Se il valore relativo a tale stato è incluso tra l'80% e il 90%, può essere necessario eseguire un aggiornamento della CPU o aggiungere ulteriori processori. Nel caso dei sistemi multiprocessore, è necessario monitorare un'istanza del contatore per ogni processore. Il valore rappresenta il tempo totale di un processore specifico. Per determinare la media di tutti i processori, usare il contatore Sistema: % Tempo totale processore .

Facoltativamente, per monitorare l'utilizzo del processore è inoltre possibile utilizzare i contatori seguenti:

  • Processore: % Tempo privilegiato

    Corrisponde alla percentuale di tempo trascorso dal processore per l'esecuzione di comandi kernel di Microsoft Windows, ad esempio l'elaborazione di SQL Server richieste di I/O. Se il valore di questo contatore è costantemente elevato e anche i contatori Disco fisico presentano valori elevati, valutare la possibilità di installare un sottosistema di disco più veloce o più efficiente.

    Nota

    I diversi tipi di controller del disco e driver utilizzano quantità diverse di tempo di elaborazione del kernel. I controller e i driver efficienti richiedono meno tempo privilegiato, lasciando una maggior quantità di tempo di elaborazione disponibile per le applicazioni utente, migliorando di conseguenza il throughput generale.

  • Processore: % Tempo utente

    Corrisponde alla percentuale di tempo trascorsa dal processore per l'esecuzione di processi utente, ad esempio SQL Server.

  • Sistema: Lunghezza coda processore

    Indica il numero di thread in attesa di elaborazione. Se i thread di un processo richiedono un numero di cicli del processore maggiore di quello disponibile, si verifica un collo di bottiglia a livello del processore. Se una quantità notevole di processi tenta di utilizzare il tempo del processore, può essere necessario installare un processore più veloce o, nel caso di sistemi multiprocessore, aggiungere un processore.

Quando si esamina l'utilizzo del processore, considerare il tipo di lavoro eseguito dall'istanza di SQL Server. Se SQL Server esegue molti calcoli, ad esempio query che coinvolgono aggregazioni o query associate alla memoria che non richiedono operazioni di I/O su disco, è possibile usare il 100% del tempo del processore. In tal caso, se le prestazioni delle altre applicazioni peggiorano, provare a modificare il carico di lavoro, Ad esempio, dedicare il computer all'esecuzione dell'istanza di SQL Server.

I valori di utilizzo prossimi al 100%, sintomo dell'elaborazione di numerose richieste client, possono indicare la presenza di processi in coda in attesa del tempo del processore che causano un collo di bottiglia. Risolvere il problema aggiungendo processori più veloci.