Monitorare l'utilizzo della CPUMonitor CPU Usage

È opportuno monitorare periodicamente un'istanza di Microsoft SQL ServerSQL Server per verificare che i valori di utilizzo della CPU rientrino nei normali intervalli.Monitor an instance of Microsoft SQL ServerSQL Server periodically to determine whether CPU usage rates are within normal ranges. Se la frequenza di utilizzo della CPU è costantemente elevata può essere necessario eseguire un aggiornamento della CPU o aggiungere più processori.A continually high rate of CPU usage may indicate the need to upgrade the CPU or add multiple processors. Una valore costantemente elevato di utilizzo della CPU può inoltre indicare la presenza di un'applicazione non progettata o ottimizzata correttamente.Alternatively, a high CPU usage rate may indicate a poorly tuned or designed application. L'ottimizzazione dell'applicazione potrebbe ridurre l'utilizzo della CPU.Optimizing the application can lower CPU utilization.

Una soluzione efficiente per determinare l'utilizzo della CPU consiste nell'usare il contatore Processore:% Tempo processore in Monitoraggio di sistema.An efficient way to determine CPU usage is to use the Processor:% Processor Time counter in System Monitor. Questo contatore consente di monitorare la quantità di tempo utilizzata dalla CPU per l'esecuzione di un thread non inattivo.This counter monitors the amount of time the CPU spends executing a thread that is not idle. 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.A consistent state of 80 percent to 90 percent may indicate the need to upgrade your CPU or add more processors. Nel caso dei sistemi multiprocessore, è necessario monitorare un'istanza del contatore per ogni processore.For multiprocessor systems, monitor a separate instance of this counter for each processor. Il valore rappresenta il tempo totale di un processore specifico.This value represents the sum of processor time on a specific processor. Per determinare la media di tutti i processori, usare il contatore Sistema: % Tempo totale processore .To determine the average for all processors, use the System: %Total Processor Time counter instead.

Facoltativamente, per monitorare l'utilizzo del processore è inoltre possibile utilizzare i contatori seguenti:Optionally, you can also monitor the following counters to monitor processor usage:

  • Processore: % Tempo privilegiatoProcessor: % Privileged Time

    Indica la percentuale di tempo richiesta dal processore per l'esecuzione dei comandi kernel di Microsoft Windows, ad esempio l'elaborazione delle richieste di I/O di SQL ServerSQL Server .Corresponds to the percentage of time the processor spends on execution of Microsoft Windows kernel commands, such as processing of SQL ServerSQL Server I/O requests. 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.If this counter is consistently high when the Physical Disk counters are high, consider installing a faster or more efficient disk subsystem.

    Nota

    I diversi tipi di controller del disco e driver utilizzano quantità diverse di tempo di elaborazione del kernel.Different disk controllers and drivers use different amounts of kernel processing time. 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.Efficient controllers and drivers use less privileged time, leaving more processing time available for user applications, increasing overall throughput.

  • Processore: % Tempo utenteProcessor: %User Time

    Indica la percentuale di tempo richiesta dal processore per l'esecuzione dei processi utente, ad esempio SQL ServerSQL Server.Corresponds to the percentage of time that the processor spends on executing user processes such as SQL ServerSQL Server.

  • Sistema: Lunghezza coda processoreSystem: Processor Queue Length

    Indica il numero di thread in attesa di elaborazione.Corresponds to the number of threads waiting for processor time. 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.A processor bottleneck develops when threads of a process require more processor cycles than are available. Se una quantità notevole di processi tenta di utilizzare il tempo del processore, può essere necessario installare un processore più veloceIf more than a few processes attempt to utilize the processor's time, you might need to install a faster processor. o, nel caso di sistemi multiprocessore, aggiungere un processore.Or, if you have a multiprocessor system, you could add a processor.

    Quando si analizza l'utilizzo del processore, è necessario tenere presente il tipo di attività eseguita dall'istanza di SQL ServerSQL Server .When you examine processor usage, consider the type of work that the instance of SQL ServerSQL Server performs. Se SQL ServerSQL Server esegue numerosi calcoli, ad esempio query che riguardano aggregazioni o query gestite in memoria che non richiedono I/O su disco, è possibile che venga utilizzato il 100% del tempo del processore.If SQL ServerSQL Server performs many calculations, such as queries involving aggregates or memory-bound queries that require no disk I/O, 100 percent of the processor's time can be used. In tal caso, se le prestazioni delle altre applicazioni peggiorano, provare a modificare il carico di lavoro,If this causes the performance of other applications to suffer, try changing the workload. ad esempio dedicando il computer all'esecuzione dell'istanza di SQL ServerSQL Server.For example, dedicate the computer to running the instance of SQL ServerSQL 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.Usage rates around 100 percent, where many client requests are being processed, may indicate that processes are queuing up, waiting for processor time, and causing a bottleneck. Risolvere il problema aggiungendo processori più veloci.Resolve the problem by adding faster processors.