Windows – RamMap “Empty standby list” drastically speeds up PC. Is there a better way to do this

cachememoryperformancewindows

Many people are educated on how Windows Memory manager caching works by reading Microsoft white papers, etc. However, there are relatively few documents that describe real-world performance issues (sluggishness) related to very large/growing mapped files and standby lists.

I have a Win7 64bit (8Gb RAM) PC which acts as a server. I can't add any more memory to it. It has a bunch of TV tuners which record/write several simultaneous gigantic mpeg2 files (at least 3-8GBs each) to a HDD 24/7. Depending on how busy my PC is recordings TV shows, after 1-3 days, my PC becomes sluggish.

By just looking at Windows Task Manager, it appears that I don't have very many large applications open; and, plenty of "available memory". Even if I close all active processes, the PC remains sluggish. However, when using RamMap, I can see that these large mpeg2 files become mapped files in the active standby list; which over time make my PC very sluggish. If I select "Empty standby list" in RamMap, my PC immediately becomes extremely responsive; as if I just rebooted it. There is nothing else I can do to address sluggishness. In fact, the PC will never recover from this sluggishness unless I empty the standby list or reboot.

I have a command-line utility, EmptyStandbyList.exe, which I found that quietly purges the standby list instead of having to do that in RamMap's GUI. However, unfortunately it also purges smaller items in the standby list that are very useful for performance purposes to stay in the standby list.

While searching on Google, I've found other people who have almost the same exact issue as me. However, most of their questions go unanswered; with no real explanation to why this happens; and, no definitive way to fix the issue other than the "Empty standby list" technique.

I've seen mentions of a MS utility/service called "Dynamic Cache"; but not sure if it cures specifically what I want. Also, the Win7/Win2008 R2 version of it seems to be only available via MS support. I also saw a couple of utilities which set the "min/max NT cache limits"; but those look like they're specific to Working sets for processes, not standby lists.

I'm hoping someone who can think outside-the-box can think of a more graceful cure for me instead of me having to use brutally empty the entire standby list regularly; and, hopefully have a definitive explanation to the symptom me (and other people) are seeing. The reason I mentioned "outside-the-box" is because there are already plenty of people who like to just recite how mapped files and standby list priorities "should" work on paper; which isn't very helpful for me.

Best Answer

The Standby list is the Superfetch cache and the "Dynamic Cache" fixes a different issue. The service fixes an issue where the NTFS Metadata cache is too high. But Stadnbylist and this Cache are 2 different things. The NTFS Cache is shown as used Memory, while the Standby-Cache is contains data, but can be emptied very fast if you really new that Memory to store data in it.

On sysinternals forum the user wj32, the author of Process Hacker, created a commandline tool which does what you want:

http://forum.sysinternals.com/rammap-empty-standby-list_topic27297_post132769.html#132769

Try it if it "fixes" your issue.

Related Question