I have a server that is churning up the CPU using 60% to 80% constantly. Using a tool from Brent Ozar's First Responder Kit, it shows RING_BUFFER_SCHEDULER_MONITOR is the culprit. What is this, and how can I track down what is doing this?
60%. Ring buffer details: <Record id="3592" type="RING_BUFFER_SCHEDULER_MONITOR" time="215993000"><SchedulerMonitorEvent><SystemHealth><ProcessUtilization>57</ProcessUtilization><SystemIdle>40</SystemIdle><UserModeTime>2748425618</UserModeTime><KernelModeTime>27144174</KernelModeTime><PageFaults>986</PageFaults><WorkingSetDelta>94208</WorkingSetDelta><MemoryUtilization>100</MemoryUtilization></SystemHealth></SchedulerMonitorEvent></Record>
Best Answer
Well, no, not exactly. My fault for not making the wording on that a little better.
You're using sp_BlitzFirst, and here's something similar to what you're seeing:
It's reporting CPU usage and where I found it in the DMVs - the ring buffer. The ring buffer isn't CAUSING the high CPU use.
To find queries doing high CPU use, use sp_BlitzCache @SortOrder = 'cpu'.
For more details, check out this post from Microsoft's Premier Field Engineering team on using ring buffers to track CPU usage inside SQL Server.