I absolutely adore sp_PressureDetector. It’s short, it’s sweet, and it returns so many great details about what sort of pressure a SQL Server is under.
Today, we’re going to look at various ways that CPU pressure can be exposed.
You know, those expensive things that you license from Microsoft that make your database run?
They seem important.
There are precious few parameters to sp_PressureDetector. The only one you might use is
EXEC sp_PressureDetector @what_to_check = 'cpu';
By default, the value is “both” — meaning you check CPU and memory — but you can choose to check one or the other.
Running that is going to show you all of the following things, as long as you’re on the latest version.
First, you might see signs in wait stats:
My demo VM hasn’t been up terribly long, and I threw a ridiculous CPU workload at it. Basically one parallel query that exhausts worker threads.
All of the waits there can be signs that your server CPU is overworked. They’re not too bad here, but if the hours_wait_time column is much greater than the hours_uptime column, that could be a pretty good indication.
Of course, because I’m throwing a horrible parallel workload at it, some of the other sections are gonna have really obvious problems.
Take this section, for instance.
The negative available_threads column, plus the high runnable columns. Having lots of runnable queries means you have a lot of queries waiting to get on/back on a CPU.
Long lines there can mean that your CPUs are way too busy.
When things are really bad, you might see a bunch of queries that are waiting a really long time to get a CPU, resulting in gobs of THREADPOOL waits.
These are the places that signs of CPU pressure can prop up. If you need help fixing that, young and good looking consultants are standing by.
Thanks for reading!
If this is the kind of SQL Server stuff you love learning about, you’ll love my training. I’m offering a 75% discount to my blog readers if you click from here. I’m also available for consulting if you just don’t have time for that, and need to solve database performance problems quickly. You can also get a quick, low cost health check with no phone time required.
- SQL Server Community Tools: The Wrap Up And Combined Link
- SQL Server Community Tools: Why Does sp_PressureDetector Make A Big Deal About The Remote DAC?
- SQL Server Community Tools: sp_PressureDetector Doesn’t Show You Irrelevant Waits
- SQL Server Community Tools: sp_PressureDetector Shows You Running Queries Taking Up CPU And Memory