I am somewhat of an accidental DBA, and I'm troubleshooting a SQL Server box where performance has been notoriously poor (as reported by the customer). I was not involved in the initial planning of this job - so I am learning more about this machine as I go.
Motivated by Brent Ozar's talk on SQL Server and Perfmon, I saw this as a good starting point. I just started logging the Perfmon data to csv yesterday - so I have about 24 hours of 30 second samples. I decided to start "slicing and dicing" the data!
I decided to look for any CPU bottlenecks first.
The machine is running: Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz, 1900 Mhz, 6 Core(s), 12 Logical Processor(s)
I launched CPUz and noticed that the each of the 6 cores was actually operating at a throttled back frequency of 1.1GHz
. I have adjusted the Windows power plan settings from balanced to high performance, but it didn't seem to make a difference. I believe the BIOS may be overriding this. I will have to check...
Anyways, on to the Perfmon data...
Looking at the Processor(x)\% Processor Time
counters (where x is in [0-11]), I noticed that for Processor (2)
, the utilization is consistently twice the average of the others. Processor (2)
had an average of 56%
, while Processors (1) and (3) had averages of 14% and 11%
, respectively. The max for Processor (2) topped out at 97%
. The max for the others barely reached 50%
. This is definitely unbalanced, but why? And should I be concerned?
For reference, the Processor Queue length
averaged 0.2
, with a max of 11
.
- Should this unbalanced % Processor Time be a concern? Or am I getting upset over nothing?
- If this is something I need to explore further, where should I start? Is there a good way to track processor affinity and see what's causing Processor (2) to run consistently high?
Any help would be appreciated.