Perfmon是Windows系统性能监视程序。用于监视CPU使用率、内存使用率、硬盘读写速度、网络速度等。
Processor/%Privileged Time
阀值:若是数值持续大于75%就表示存在瓶颈。
含义:这个计数器表示一个线程在特权模式下所使用的时间比例。当你的程序调用操做系统的方法(好比文件操做,网络I/O或者分配内存),这些操做系统的方法是在特权模式下运行的。
Processor/ %UserTime
与%Privileged Time计数器正好相反,指的是在用户状态模式下(即非特权模式)的操做所花的时间百分比。
Process(sqlservr.exe)/ %Processor Time
SQLServer进行的CPU使用状况
Processor/% Interrupt Time
阀值:取决于处理器
含义:这个计数器表示处理器接收处理硬件中断所使用的时间比例。这个值间接指出产生中断的硬件设备活动,好比网络变化。这个计数器显著增长的话表示硬件可能存在问题。
System/Processor Queue Length
阀值:平均值持续大于2那么表示CPU存在瓶颈
含义:若是就绪的任务超过处理能力线程就会被放进队列。处理器队列是就绪可是未能被处理器执行的线程的集合,这是由于另一个线程正在执行状态。持续或者反复发生2个以上的队列则明确的表示存在处理器瓶颈。你也能经过减小并发取得更大的吞吐量。
你能够结合Processor/% Processor Time来决定增长CPU的话你的程序是否可以受益。即便在多处理器的电脑上,对于CPU时间也是单队列。所以,在多处理器电脑上,Processor Queue Length (PQL)的值除以用来处理负载的CPU个数。
若是CPU很是忙(90%以上的使用率),PQL的平均值也持续大于2/CPU, 这是应该存在CPU瓶颈并且可以从更多的CPU中受益。或者,你能够减小线程的数量以及增长应用程序层的队列。这会引发少许的Context Switching,可是少量的Context Switching对于减小CPU负载是有好处的。PQL大于2可是CPU使用率却不高的的常见缘由是对CPU时间的请求随机到达并且线程却从处理器申请到不对称的CPU时间。这意味着处理器并非瓶颈,而你的线程逻辑是须要改进的。
SQLServer:SQL Statistics/Auto-Param Attempts/sec
每秒的自动参数化尝试数。 其总数应为失败的、安全的和不安全的自动参数化尝试之和。 当 SQL Server 实例尝试经过将某些文字替换为参数来参数化 Transact-SQL 请求时,就会进行自动参数化,这样能够对多个类似的请求再次使用保存在缓存中的执行计划。 请注意,在更新版本的 SQL Server中,自动参数化也称为简单参数化。 此计数器不包括强制参数化。
SQLServer:SQLStatistics/Failed Auto-params/sec
每秒自动参数化尝试失败次数。 该值应很小。 请注意,在更高版本的 SQL Server中,自动参数化也称为简单参数化。
SQLServer:SQLStatistics/Batch Requests/sec
每秒收到的 Transact-SQL 命令批数。 这一统计信息受全部约束(如 I/O、用户数、高速缓存大小、请求的复杂程度等)影响。 批处理请求数值高意味着吞吐量很好。
SQLServer:SQL Statistics/SQLCompilations/sec
每秒的 SQL 编译数。 表示编译代码路径被进入的次数。 包括 SQL Server中语句级从新编译致使的编译。 当 SQL Server 用户活动稳定后,该值将达到稳定状态。
SQLServer:SQL Statistics/SQLRe-Compilations/sec
每秒语句从新编译的次数。 计算触发语句从新编译的次数。 通常来讲,这个数值最好较小。
sql