I am using BizTalk360 version 8.9.5112.2201 in a BizTalk2016 environment. In setting up reports, I came across an interesting issue. If you have looked at the CPU usage reports, you may have noticed that the graphs do not match actual performance.
Consider the following SQL Servers Performance graph.
You will notice that the left-side legend is displaying 0-100%. I make the assumption that this is Total CPU and the right-side legend is memory usage.
You will also notice that one plot is exceeding the 100% barrier. I checked the graph legend and determined the process exceeding 100% CPU was sqlservr.
To find out what was occurring, I went to the source. I logged into the server, launched Perfmon and loaded the The %processorTime for all sqlservr instances. After running for a brief period, I began seeing the same pattern as in BizTalk360.
The blue line in the graph is the sqlservr process in question and you can see it does indeed oscillate. I watched for a while and I saw values go above 100%, again, just like in the BizTalk360 graphs. In fact, if you imagine the above graph pattern being repeated for a full day and squeezed into the same graph area, you can see how it might resemble the graph from the BizTalk360 report.
This is caused by the SQL server having more than 1 CPU or multiple cores per CPU. It appears that the graph displays do not reflect the number of cores/cpu in the graph.
In my case, I was running a SQL server on 2 sockets with 4 cores for a total of 8 processors. This means to accurately represent the graph in this scenario, the y-axis for CPU, the left-side, would need to go to 800. This would mean I was blind to any more that 1/8th the total usage of my system.
No solution at this time.