If you have ever used my DMV Diagnostic Information Queries, you have probably run the CPU Utilization History query that let’s you get your CPU utilization history for last 256 minutes (in one minute intervals). This query is useful for seeing the recent trend of CPU utilization by SQL Server and by all other processes running on the machine.
This query works quite well most of the time. Unfortunately, it sometimes returns obviously inaccurate results, such as negative numbers or numbers over 100% for CPU utilization. This seems to happen mainly with systems that have more than 64 logical cores.
Product Feedback Item
I get pretty regular emails from people telling me about this issue. My query uses the undocumented and unsupported sys.dm_os_ring_buffers DMV. Over the years, I have mentioned this issue to several different people I know at Microsoft to see if we could get it fixed, with no success.
Now, I am trying once again. I have created a Feedback item about this.
Having this in place lets other people vote on it and add their comments. It also makes it easier for Microsoft to track and sometimes will help convince Microsoft to work on the issue. In this case, I have asked for a new DMV that would be supported and documented that would expose this type of information.
Please take a moment to read my suggestion, and then vote on it. It would also be very helpful if you added your comments about why this would be useful for you. The more feedback, the better!
Thanks for taking the time to read this!
1 thought on “New DMV that Exposes CPU Utilization Information”
There’s already something like this implemented in Azure SQL databases: sys.dm_db_resource_stats
It includes CPU utilisation over time as well as several other interesting metrics.
It would definitely be nice to have it on IaaS installations as well.