监视 CPU 使用率

定期监视 Microsoft SQL Server 的实例,以确定 CPU 使用率是否在正常范围内。 CPU 使用率持续高可能表示需要升级 CPU 或添加多个处理器。 或者,较高的 CPU 使用率可能表示应用程序的优化或设计不佳。 优化应用程序可以降低 CPU 利用率。

确定 CPU 使用率的有效方法是使用系统监视器中的处理器:% 处理器时间计数器。 此计数器监视 CPU 执行未空闲的线程所花费的时间。 80% 到 90% 的一致状态可能表示需要升级 CPU 或添加更多处理器。 对于多处理器系统,请为每个处理器监视此计数器的单独实例。 此值表示特定处理器上的处理器时间之和。 若要确定所有处理器的平均值,请改用 System:%Total 处理器时间 计数器。

(可选)还可以监视以下计数器来监视处理器使用情况:

  • 处理器:% 特权时间

    对应于处理器在执行 Microsoft Windows 内核命令(例如处理 SQL Server I/O 请求)所花费的时间百分比。 如果此计数器在 物理磁盘 计数器较高时保持较高,请考虑安装更快或更高效的磁盘子系统。

    注释

    不同的磁盘控制器和驱动程序使用不同的内核处理时间量。 高效的控制器和驱动程序使用较少的特权时间,为用户应用程序留出更多的处理时间,从而提高整体吞吐量。

  • 处理器:%User 时间

    对应于处理器在执行用户进程(如 SQL Server)上花费的时间百分比。

  • 系统:处理器队列长度

    对应于等待处理器时间的线程数。 当进程的线程需要比可用更多的处理器周期时,处理器瓶颈会发展。 如果多个进程尝试利用处理器的时间,则可能需要安装更快的处理器。 或者,如果你有多处理器系统,则可以添加处理器。

检查处理器使用情况时,请考虑 SQL Server 实例执行的工作类型。 如果 SQL Server 执行许多计算,例如涉及聚合的查询或不需要磁盘 I/O 的内存绑定查询,则可以使用处理器时间的 100%。 如果这会导致其他应用程序的性能受到影响,请尝试更改工作负荷。 例如,将计算机指定为运行 SQL Server 实例。

使用率接近 100% 时,众多客户端请求被处理,这可能表明进程正在排队,等待处理时间,从而导致瓶颈。 通过添加更快的处理器来解决该问题。