Condividi tramite


Monitorare l'utilizzo della CPU

Monitorare periodicamente un'istanza di Microsoft SQL Server per determinare se le tariffe di utilizzo della CPU sono entro intervalli normali. Un tasso di utilizzo continuo della CPU può indicare la necessità di aggiornare la CPU o aggiungere più processori. In alternativa, una frequenza di utilizzo elevato della CPU può indicare un'applicazione non ottimizzata o progettata correttamente. L'ottimizzazione dell'applicazione può ridurre l'utilizzo della CPU.

Un modo efficiente per determinare l'utilizzo della CPU consiste nell'usare il contatore Tempo del processore:% in Monitoraggio di sistema. Questo contatore monitora la quantità di tempo trascorso dalla CPU mentre esegue un thread che non è inattivo. Uno stato coerente dell'80% al 90% potrebbe indicare la necessità di aggiornare la CPU o aggiungere più processori. Per i sistemi multiprocessore, monitorare un'istanza separata di questo contatore per ogni processore. Questo valore rappresenta la somma del tempo del processore in un processore specifico. Per determinare la media per tutti i processori, usare il contatore System: %Total Processor Time invece.

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

  • Processore: % Tempo privilegato

    Corrisponde alla percentuale di tempo trascorso dal processore per l'esecuzione di comandi kernel di Microsoft Windows, ad esempio l'elaborazione delle richieste di I/O di SQL Server. Se questo contatore è costantemente elevato quando i contatori dei dischi fisici sono elevati, è consigliabile installare un sottosistema disco più veloce o più efficiente.

    Annotazioni

    Diversi controller e driver del disco usano quantità diverse di tempo di elaborazione del kernel. Controller e driver efficienti usano meno tempo privilegiato, lasciando più tempo di elaborazione disponibile per le applicazioni utente, aumentando la velocità effettiva complessiva.

  • Processore: %User Tempo

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

  • Sistema: Lunghezza della coda del processore

    Corrisponde al numero di thread in attesa del tempo del processore. Un collo di bottiglia del processore si sviluppa quando i thread di un processo richiedono più cicli del processore rispetto a quelli disponibili. Se più di alcuni processi tentano di usare il tempo del processore, potrebbe essere necessario installare un processore più veloce. In alternativa, se si dispone di un sistema multiprocessore, è possibile 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. Se ciò causa il problema delle prestazioni di altre applicazioni, provare a modificare il carico di lavoro. Ad esempio, dedicare il computer all'esecuzione dell'istanza di SQL Server.

I tassi di utilizzo intorno al 100 percento, quando vengono elaborate molte richieste dei client, possono indicare che i processi vengono accodati, in attesa del tempo di elaborazione del processore e creando un collo di bottiglia. Risolvere il problema aggiungendo processori più veloci.