Sql-Server

sys.dm_os_ring_buffers 中的 CPU 使用率不正確

  • November 1, 2019

我正在使用 SQL Server 實例執行雲 VPS。因為它是供個人使用的,所以我使用的是速成版(我不能使用開發者版,因為從技術上講,我在上面執行了生產應用程序,而且我買不起 Standard+)。

我正在嘗試使用Brent Ozar 的教程使用sp_BlitzFirst. 我遇到的問題是,無論當時的實際 CPU 使用率如何, ProcessUtilizationinsys.dm_os_ring_buffers總是以 形式出現。100

虛擬機資訊

@@version: Microsoft SQL Server 2017 (RTM-CU15) (KB4498951) - 14.0.3162.1 (X64) 2019 年 5 月 15 日 19:14:30 版權所有 (C) 2017 Microsoft Corporation Express Edition (64-bit) o​​n Linux (Ubuntu 18.04) .2 LTS)

主機: 1 & 1 Ionos VPS

lscpu 輸出

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           2
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               63
Model name:          Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
Stepping:            0
CPU MHz:             2194.844
BogoMIPS:            4389.68
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            19712K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt arat flush_l1d arch_capabilities

微軟表示DMV(環形緩衝區)不適用於 SQL Server 2017,僅適用於 2019:

Sys.dm_os_ring_buffers DMV 一直是用於通過內置工具以及第三方監控實用程序監控 SQL Server 的關鍵 DMV。當 SQL Server 2017 在 Linux 上發佈時,不幸的是,這個 DMV 沒有通過 SQL Server 程序返回正確的 CPU 使用資訊。SQL Server 團隊很高興地宣布,從 SQL Server 2019 候選版本開始,sys.dm_os_ring_buffers DMV 會正確返回 SQL CPU 使用率。

引用自:https://dba.stackexchange.com/questions/252334