I have SQL Server running on 32-core CPU, and I use Performance Monitor (perfmon.msc) to collect data on Processor: % Processor Time (Instance – _Total) and Process: % Processor Time (Instance – sqlservr.exe)
So for example for day 2019/07/21 (Sunday), it shows average values:
Processor: % Processor Time (Instance - _Total) - 3.959 Process: % Processor Time (Instance - sqlservr.exe) - 107.312
Why is such a difference ?
I expected sqlservr.exe to show values like 2.900 or 3.100 – something like this, but not 107.312
How to correlate _Total to sqlservr.exe ?
I am using MaxDOP limited to 8 server level setting on SQL Server, if this is any help
Process: % Processor Time (Instance - sqlservr.exe) counter takes into account all of your cores. If you divide by the cores you get an answer much similar to what you expected.
This TechNet article explains it in far more detail but it uses this calculation to get the number you see:
(No of Logical Cores * 100), So this is going to be a calculated over a baseline of more than 100.