Consolidation Planning: Perfmon Statistics
In this Thursday’s webcast about SQL Server Consolidation, I’ll be covering what Perfmon statistics to gather when planning for consolidation. (I’ve got a blog post describing Performance Monitor in detail if you haven’t used it before.)
Here’s my short list of counters specifically for consolidation projects:
- Physical Disk - Avg. Disk Queue Length - shows how many things are waiting on the I/O subsystem
- Physical Disk - Avg Disk sec/Read - shows how long reads are taking
- Physical Disk - Avg Disk sec/Write - shows how long writes are taking
- Processor - % Processor Time - shows how busy the server’s CPUs are
- System - Processor Queue Length - shows how many things are waiting on CPU power
When I’m gathering these statistics and analyzing the results, I’m most concerned about times when these counters show huge spikes. I’m looking for maxed-out CPUs and very heavy drive access. I don’t care about averages - I want the very worst times of the day.
Before a consolidation project, if a single server has a sudden, massive load on its processors, that load is confined to that single server. One server’s load doesn’t suddenly bring down any other applications.
After consolidation, however, more databases & applications live on the same hardware, and the application that used to live by itself now impacts other applications.
In a perfect world, when I consolidate multiple servers together, their extreme load times never overlap. These would be examples of good consolidation candidates:
- Sales force application with heavy use from 8am-10am (morning reports)
- Reporting application with heavy use from 6pm-9pm (as store closing info comes in)
- Web filtering application with heavy use from noon-5pm (as people get bored and start surfing the web)
All of these applications will have load around the clock, but they don’t have knock-the-box down load at any given time when other apps need power too.
Even if the times don’t overlap, though, we have to watch out for apps that will consume all available power no matter what. An extreme example is a data warehouse that runs nightly loads. During that time window, the server is under very heavy load. There are long time windows where the server’s CPU load may average 100% and its I/O subsystems are responding slower. If we consolidated that server with a few others, the data warehouse load will still use all of the power it can get, and other applications will suffer. Plus, the data warehouse’s backup maintenance window might be during the day - and we can’t slow down our other apps during the day. (Yes, data warehouses are a bad candidate for consolidation, and yes, that’s why I picked them as an example.)
Notice that I didn’t include any memory counters in my Perfmon list. When consolidating multiple SQL Servers together onto the same server with different instances, you can segregate their memory use, so you don’t have to worry about them competing for the same memory. On the other hand, if you’re consolidating into a single instance, you can’t segregate applications into separate memory spaces inside SQL anyway, so there’s no use planning for something you can’t change.
That’s not to say you don’t have to plan for memory during consolidation, but it’s just easier than CPU and storage planning.
If there’s other Performance Monitor counters you like to gather before consolidation, post a comment here. Thanks!

