Sql-Server
來自系統健康擴展事件的程序使用率不正確?
我最近一直致力於了解儲存在系統健康擴展事件事件文件中的數據或指標。
我們正在嘗試使用此處提供的系統健康來實現性能指標的數據收集
有報告提供從名為的系統健康事件收集的 CPU 使用率、其他程序使用率等指標
scheduler_monitor_system_health_ring_buffer_recorded
對於我的幾個繁忙的伺服器,我無法理解為什麼在報告中列為 SQL CPU 使用率的欄位“process_utilization”大部分時間都在 100 以上。在高峰時間它在 120-160 之間變化,因此報告是即使當我從伺服器活動監視器檢查時,CPU 總是顯示在 100 以上,但情況並非如此。
我在 Github 中提出了這個問題,但似乎沒有修復或回應。
因此,我的問題是
- 如何使用記錄的系統健康環緩衝區獲得伺服器的 SQL CPU 使用率的準確數字?
- 報告還顯示了根據他們的報告計算的以下 2 個欄位的計數器
- 100-System_idle-process_utilization 作為 OtherProcessUtil
- 100-system_idle 作為 SystemUtil
這些OtherProcessUtil和SystemUtil需要/有什麼幫助?
- 我還看到每次記憶體使用率總是顯示為 100。這似乎也不正確。有沒有人注意到它?
其他工具,例如 Idera 和哨兵
$$ which i tested $$不要顯示相同伺服器的 CPU 使用率高於 100%。我對相同的負載進行了並排比較。
超過 100% 的磁碟和處理器百分比計數器的值應除以系統中存在的處理器或磁碟數。所以 100% 意味著它正在使用一個處理器的 100%。250% 意味著它使用兩個半處理器。因此,如果它報告 120%,請查看是否相當於 120 / <處理器數>。
請注意,tigertools 的最新更改是 2018 年 6 月。您可以查看sqlwatch.io,因為它似乎是一個更加活躍的項目。
請參閱social.msdn.microsoft.com/Forums/sqlserver/en-US /…並將其更改為 TOP(1) 以獲取目前 SQL CPU 使用情況。
——托尼·欣克爾