来自系统健康状况扩展事件的错误流程利用?


10

我最近一直在努力了解存储在系统健康状况扩展事件事件文件中的数据或度量。

我们正在尝试使用此处提供的系统健康状况来实施性能指标的数据收集

有报告提供了从名为“系统运行状况”的事件中收集的指标,如CPU利用率,其他进程利用率等。

scheduler_monitor_system_health_ring_buffer_recorded

对于少数繁忙的服务器,我无法理解为什么报告中列为“ SQL CPU利用率”的字段“ process_utilization”大部分时间都高于100。在高峰时间,它在120-160之间变化,因此该报告是始终显示CPU高于100,即使我从服务器活动监视器中检查也是如此。

我已经在Github中提出了这个问题,但似乎没有解决方法或没有回应。

因此,我的问题是

  1. 如何使用记录的系统运行状况环形缓冲区获取服务器的SQL CPU利用率的准确数字?

  2. 报告还显示了根据其报告计算出的以下2个字段的计数器

  1. 100-System_idle-process_utilization和OtherProcessUtil

  2. 100-system_idle作为SystemUtil

这些OtherProcessUtilSystemUtil需要/有什么帮助?

  1. 我还看到每次每次的内存利用率始终显示为100。这似乎也不正确。有人注意到吗?

其他工具(例如Idera和sentry)(我测试过)没有显示相同服务器的CPU使用率超过100%。对于相同的负载,我进行了并排比较。

Answers:


1

超过100%的磁盘和处理器%计数器的值应除以系统中存在的处理器或磁盘的数量。因此100%表示它正在使用100%的一个处理器。250%表示它正在使用两个半处理器。因此,如果报告为120%,请查看是否等于120 / <处理器数量>。

请注意,tigertools的最新更改是在2018年6月。您可以查看sqlwatch.io,因为它似乎是一个更加活跃的项目。

请参阅social.msdn.microsoft.com/Forums/sqlserver/en-US/…,只需将其更改为TOP(1)即可获取当前的SQL CPU使用率。

托尼·欣克尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.