Heroix Monitor: SQL Server Monitoring for Windows Administrators
In this issue: SQL Server monitoring
 


SQL Server Performance Monitoring for Windows Administrators

Looking at the Big Picture of SQL Server Performance

Last month we took a look at the big picture of Linux server performance monitoring – what to monitor, how often, and basic rules of thumb. This month we jump to SQL Server and discuss key SQL Server performance metrics that anyone new to SQL Server administration will want to know about. Here’s what we recommend you look at when investigating performance issues on SQL Servers:

Memory Available to SQL Server

If the percentage of free memory available to be used by SQL Server is consistently low - less than 20% of the memory available to SQL Server is free – it will significantly degrade the performance of SQL Server.

SQL Server gives you several options for allocating memory to SQL Server. You can configure SQL Server to use a fixed amount of the memory available on the server, you can configure SQL Server to dynamically allocate memory to itself according to demand, or you can configure SQL Server to dynamically allocate memory to itself within limits that you configure.

If adjusting how memory is allocated to SQL Server does not free up enough memory for the SQL Server instance to function properly, the physical memory for the server may need to be increased, or the concurrent application load on the server may need to be decreased.

CPU Utilization

Consistently high CPU utilization rates, over 90%, may indicate a poorly-tuned or designed application, or an underpowered system.

A good auxiliary metric to look at is the size of the processor queue. If you see high CPU usage and a processor queue that exceeds two over time, it means that processes consistently have to wait for the CPU – a sure sign of a bottleneck.

If that is the case, check for blocked SQL processes or processes using large amounts of CPU time.

Disk I/O

High disk utilization, over 50%, results in sluggish response time and poor application performance. Performance can particularly degrade if the disk queue length exceeds two. Disk queue length is the number of outstanding requests that need to be serviced by the disk.

If this situation persists, either reduce the concurrent application load or upgrade the computer with faster disks and/or more disks. Faster disks will cope with the I/O load better. Additional disks will allow for the I/O load to be spread across more spindles.

Response Time for Commonly Run Queries

Monitoring the response time of commonly run queries over time is an effective way of gauging the relative performance of SQL Server. If the response time for the same queries increases to unacceptable levels, the resources on the server may need to be increased.

You can use the Longitude Transaction application to execute queries against a SQL Server.  You can also configure a Longitude SLA to make sure that the response time of the query remains acceptable over time.

SQL Error Logs

In addition to performance metrics, it is a good idea to monitor the SQL Error logs for the presence of errors that could affect the performance of the server. Some errors to watch for include:

Error 1204 Not enough locks
Error 1205 Deadlock victim
Error 1105 Can’t allocate space for object
Error 17809 Unable to connect
Error 605 Database corrupted

If you experience any of these errors, Heroix Longitude will alert you to potential consequences and advise on how to respond to them.

As Always: Your Mileage May Vary

In any performance monitoring exercise, remember that these are rules of thumb, and you will need to make adjustments based on the characteristics of your various expected workloads; however, if you monitor these metrics consistently, you will develop a clear picture of exactly what constitutes normal behavior on your system, and you will be better equipped to detect and deal with the subtle symptoms that spell trouble ahead.

Next month: Tips for SLA Monitoring