监视 CPU 的使用率
定期监视 Microsoft SQL Server 实例以确定 CPU 使用率是否在正常范围内。持续的高 CPU 使用率可能表明需要升级 CPU 或需要增加多个处理器。或者,高 CPU 使用率也可能表明应用程序的调整或设计不良。优化应用程序可以降低 CPU 的使用率。
一个确定 CPU 使用率的有效方法是使用系统监视器中的 Processor:% Processor Time 计数器。该计数器监视 CPU 执行非闲置线程所用的时间。持续 80% 到 90% 的状态可能表明需要升级 CPU 或需要增加更多的处理器。对于多处理器系统,应为每个处理器监视一个该计数器的独立实例。这一值代表了在一个特定处理器上的处理器时间之和。若要确定所有处理器的平均时间,请使用 System: %Total Processor Time 计数器。
另外还可以监视下列计数器来监视处理器的使用率:
- Processor: % Privileged Time
对应于处理器执行 Microsoft Windows 内核命令(例如处理 SQL Server I/O 请求)所用时间的百分比。如果 Physical Disk 计数器的值很高时该计数器的值也一直很高,则考虑安装速度更快或效率更高的磁盘子系统。注意:
不同的磁盘控制器和驱动程序所用的内核处理时间不同。高效的控制器和驱动程序所用的特权时间较少,可留出更多的处理器时间给用户应用程序,从而提高总体的吞吐量。 - Processor: %User Time
对应于处理器执行用户进程(例如 SQL Server)所用时间的百分比。 - System: Processor Queue Length
对应于等待处理器时间的线程数。当一个进程的线程需要的处理器循环数超过可获得的循环数时,就产生了处理器瓶颈。如果有很多进程在争用处理器时间,可能需要安装一个速度更快的处理器。如果使用的是多处理器系统,则可以增加一个处理器。
检查处理器使用率时,需考虑 SQL Server 实例执行的工作类型。如果 SQL Server 正在做大量的运算,例如包含聚合的查询,或受内存限制但不需要磁盘 I/O 的查询,此时所用的处理器时间可能是 100%。如果这导致其他应用程序的性能降低,应尝试改变工作负荷。例如,让计算机只运行 SQL Server 实例。
若使用率为 100% 左右(表示在处理大量的客户端请求),可能表示进程正在排队,等待处理器时间,并因而导致出现瓶颈。可以通过增加速度更快的处理器来解决这一问题。