How to diagnose memory pressure vs usage.

I spent three hours last Tuesday on a call with a junior admin who was convinced that running a “system optimizer” script would fix a sluggish workstation. He was chasing ghosts, following some half-baked forum thread about clearing the standby list, when the reality was much simpler. Most people approach the question of how to diagnose memory pressure by looking at the most obvious, superficial numbers, but they miss the actual bottleneck. If you’re just staring at the percentage of used RAM in Task Manager, you aren’t actually diagnosing anything; you’re just watching a progress bar.

I’m not here to sell you on some magical registry tweak or a third-party “booster” that’ll likely just bloat your startup folder. I’ve spent seventeen years managing Windows fleets, and I’ve learned that the truth is usually buried in the performance counters and the page file metrics. In this post, I’m going to show you the actual workflow I use to determine if a system is truly choking on its workload or if it’s just being noisy. No cargo cult nonsense—just the tested, practical steps you need to see what’s happening under the hood.

Mastering System Resource Monitoring Tools Without the Fluff

Mastering System Resource Monitoring Tools Without the Fluff

Most people reach for Task Manager, see a high percentage in the performance tab, and immediately start panicking about buying more RAM. That’s a mistake. Task Manager is fine for a quick glance, but if you’re actually trying to get to the bottom of a slowdown, you need to move past the basics. I’ve spent far too many afternoons staring at “high usage” graphs that didn’t actually tell me anything useful. To do this right, you need to look at page fault frequency and how the OS is actually handling the data. If you aren’t looking at how often the system is hitting the disk because it can’t find what it needs in physical memory, you’re just guessing.

If you want to stop the guesswork, you need to get comfortable with Performance Monitor (PerfMon). It’s clunky, sure, but it’s the only way to perform a proper swap space usage analysis without relying on some third-party “optimizer” that’s probably just bloatware itself. I usually set up a data collector set to track specific counters over an hour. This lets me see if we’re dealing with a genuine spike or if a specific service is slowly eating the pool through kernel memory allocation issues. It’s about seeing the trend, not just the snapshot.

Decoding Page Fault Frequency Versus Real Performance Hits

Decoding Page Fault Frequency Versus Real Performance Hits

Most people see a spike in page faults and immediately start panicking about their RAM, thinking the system is gasping for air. That’s a mistake. You need to distinguish between “soft” faults—where the OS just finds the data in the standby list—and “hard” faults, which actually require the system to fetch data from the disk. If you aren’t looking at the hard fault rate, you’re just staring at noise. High page fault frequency doesn’t always mean you’re out of memory; it might just mean the kernel is doing its job moving things around efficiently.

The real headache starts when those hard faults correlate with a massive spike in disk I/O. That is when you are actually seeing the performance hit. When the system is constantly hitting the pagefile because it can’t keep the working set in physical RAM, your users will feel that lag. This is where effective RAM utilization troubleshooting becomes a necessity rather than an afterthought. If you see high hard faults paired with high disk latency, you’ve moved past simple housekeeping and into a genuine resource deficit or a runaway process.

Stop guessing and start looking at the actual data

  • Stop obsessing over “Available Memory” in Task Manager. It’s a useless metric that tells you nothing about whether the system is actually struggling. If you have 8GB free but your active applications are constantly hitting the page file, you have a problem. Look at the Hard Faults/sec instead; that’s where the real pain lives.
  • Watch your Commit Charge, not just physical RAM. I’ve seen plenty of machines with tons of “free” RAM that still crawl because the kernel has committed more virtual memory than the system can actually back up. If your Commit Limit is hitting the ceiling, your apps are going to start stuttering regardless of how much physical silicon you’ve shoved in the slots.
  • Use Poolmon to find the silent killers. If you see your Non-Paged Pool creeping up and never coming back down, you aren’t looking at a “heavy application”—you’re looking at a driver leak. No amount of rebooting or registry cleaning will fix a driver that’s eating kernel memory like it’s an all-you-can-eat buffet.
  • Check the Working Set size for your heavy hitters. If a process has a massive Working Set but isn’t actually doing anything productive, it’s likely just hoarding pages that could be used elsewhere. It’s not always a “leak,” sometimes it’s just poorly written software being greedy with the cache.
  • Correlate memory spikes with Disk I/O. If you see a massive spike in disk activity at the exact same moment your memory usage hits a plateau, you aren’t just “low on RAM”—you are actively thrashing the page file. That’s the moment you stop looking at software tweaks and start looking at whether you actually need to buy more hardware.

The bottom line on memory pressure

Stop obsessing over high RAM usage percentages; a system using 90% of its memory isn’t necessarily broken, but a spike in hard page faults is a smoking gun.

Ignore the “optimization” scripts on GitHub that claim to clear your standby list; if your hardware is actually struggling, those tweaks are just rearranging deck chairs on the Titanic.

Use Performance Monitor to track the actual relationship between your Working Set and your Page Faults, because that’s the only way to tell if you’re actually out of memory or if Windows is just doing its job.

Stop Guessing and Start Measuring

Stop Guessing and Start Measuring metrics.

At the end of the day, diagnosing memory pressure isn’t about finding some magic setting to toggle in the registry or running a script you found on a forum from 2012. It’s about distinguishing between normal OS paging and actual hardware starvation. If you’ve actually looked at your hard page faults and compared them against your available commit charge, you’re already ahead of 90% of the people I see chasing ghosts. Stop treating every slow-down like a memory crisis; focus on the actual metrics that show when the system is truly struggling to keep up with the workload.

Managing a fleet of machines for seventeen years has taught me that most “solutions” are just noise. You don’t need more complexity; you just need better visibility. Once you stop relying on guesswork and start trusting the telemetry, the job gets a lot quieter. It might feel tedious to dig through performance counters instead of just applying a “fix,” but that’s the difference between a sysadmin and someone who just follows instructions. Now, go get your data, find the leak, and get back to work.

Frequently Asked Questions

If my page fault rate is high but the system feels snappy, am I actually dealing with a memory bottleneck or just how Windows manages the working set?

If your system feels snappy, you aren’t hitting a bottleneck. You’re just seeing Windows doing its job. High page fault rates aren’t inherently bad; the OS is constantly shuffling data between RAM and the pagefile to optimize the working set. It’s efficient management, not a crisis. Unless you see your hard fault rate spiking alongside actual UI lag or application hangs, stop worrying. Don’t let a fancy PerfMon graph trick you into chasing ghosts.

At what specific point does a high hard fault count actually translate to a user-facing performance hit in a modern Windows environment?

It’s not about the number; it’s about the latency. You can have thousands of hard faults per second while a background indexing task runs, and the user won’t feel a thing. The “hit” happens when those faults hit the active working set of the foreground process. If your Disk Queue Length spikes and your UI thread latency climbs alongside those faults, you’ve got a problem. Otherwise, stop chasing the number and look at the disk response times.

Are there any specific non-Microsoft tools that actually give me better visibility into memory pressure than the standard Performance Monitor counters?

Look, if you’ve exhausted PerfMon and still feel like you’re guessing, stop looking for magic bullets and just use Process Explorer. It’s a staple for a reason. It lets you actually see which specific process is bloating the working set or driving up your hard faults in real-time. If you need something deeper for kernel-level leaks, grab RAMMap. It’s part of Sysinternals, and frankly, it’s the only way to see what’s actually sitting in your physical RAM versus what Windows claims is there.

About Serge Oyelowo-Haan

Half the registry tweaks people swear by have done nothing since Windows 7. I test them.

Memory Pressure Versus Memory Usage
Scroll to top