Sie sind auf Seite 1von 2

What to do if CPU Utilization is 100%, then identify

1) Check, if SQL Server is consuming more CPU or some other process.

2) If SQL Server is not consuming then assign the incident to Windows team to
investigate.

3) If SQL Server is consuming 100% CPU then

Monitor % Processor Time (_Total) in performance monitor tool (perfmon) to confirm


the utilization of all processors is high or less.

Investigating High Processor Utilization:


High processor utilization is to break it down into %Processor time (_Total)\% Privileged
Time and \% User Time

If kernel mode utilization is high, your machine is likely underpowered as it's too busy
handling basic OS housekeeping functions to be able to effectively run other applications.
And if user mode utilization is high, it may be you have your server running too many
specific roles and you should either beef hardware up by adding another processor or
migrate an application or role to another box.

System\Processor Queue Length counter gives an indication of how many threads are
waiting for execution.

4) Check if any query’s taking more time to execute by using


Select * from dm_exec_requests
Based on the spid we should increase the maxdop value or check indexes or kill based
on request.

Memory Related:
Memory\Available Bytes, and if this counter is greater than 10% of the actual RAM in
your machine then you probably have more than enough RAM and don't need to worry.

Disk Related:
Physical Disk (instance)\Disk Transfers/sec counter for each physical disk and if it goes
above 25 disk I/Os per second then you've got poor response time for your disk.

Avg Disk Sec/Read- Look for <8Msec or less as optimal.

Avg Disk Sec/Write - Look for <8Msec(Non Cached) <1Msec(Cached)

Average Disk Queue Length can vary based on the activities (Typically 30 is a red flag)
Note: PerfMon is far less useful against a SAN. Check the vendor for monitoring disk
performance tools specific to SAN.

PLE: Page Life Expectancy


The time in seconds the page stays in memory pool without being referenced before it is
flush. should be >= 300. A lower or declining value may indicate memory pressure.

SQL Compiles/sec & Recompiles/sec


<2/sec negligible, 2-20/sec could be investigated, 20-100 poor, >100 potentially serious, I
would really like a means of assessing the cost of compiles, as simple statement compile
cost is low, a complex query could take 1min to compile.

Page Splits/Sec
Occurs when a 8KB page fills and must be split into two new 8K pages.

Buffer Cache Hit Ratio:


Indicates how often SQL Server can get data from the buffer rather than disk (since the
last restart of instance).
>90% for OLAP, >95% for OLTP system

Lazy Writes/Sec
The number of times per second that lazy writer moves dirty pages from buffer to disk to
free buffer space.
<20

Page Reads/Sec and Page Writes/Sec


Number of physical database page reads and writes issued respectively
<90

Important Perfmon Counters:

Processor Related:

%Processor Time:
The simplest measure of a system's busyness is Processor(_Total)\% Processor Time,
which measures the total utilization of your processor by all running processes.

Note that if you have a multiprocessor machine, Processor(_Total)\% Processor Time


actually measures the average processor utilization of your machine (i.e. utilization
averaged over all processors).

Das könnte Ihnen auch gefallen