I have an interesting situation where a SQL2008 server is experiencing increasing CPU utilization but it is not SQL server that is increasing. This server is dedicated to SQL and doesn't run SSIS, SSAS, or anything like that.
We noticed this as we are tracking (Processor(_Total)\% Processor Time - (Process(sqlservr)\% Processor Time/#CPUs)) and normalizing this against workload (Batch Requests).
I'm looking for theories as to what is going on here and suggestions for how to investigate - if possible.
Right now the server seems stable and application performance is not suffering unduly (we have headroom) but if the trend of the past week continues it is only a matter of time before problems happen.Also, I cannot correlate any system changes to the onset of this pattern, not much has changed in months.
asked Apr 18, 2011 at 02:55 AM in Default
Process Monitor from SysInternals will break down every component that is using memory and or CPU. I am sure you could run this and write the counters to a log file. I have only used the GUI of it to track things real time. It is a free tool so check it out.
answered Apr 18, 2011 at 05:17 AM
As @TRAD said i will go with Process Exec too. But if you want to get a snapshot of how SQL vs Non-SQL processes use CPU on your sever using TSQL you can use [below queries by Glen Berry]:
-- Get CPU Utilization History for last 144 minutes (in one minute intervals)
-- This version works with SQL Server 2008 and SQL Server 2008 R2 only