16

I've noted recently that Windows 7 on my machine has been complaining about running out of memory and that I should close some programs. It would then usually point out a program I have running that does have a memory leak and has grown quite large. However, usually these programs start at 20MB of RAM usage and only after running the program between 12 to 24 hours do they grow to, at most, 200MB of RAM usage. I never have more than three of these programs running at the same time, so 600MB of RAM usage max I have ever seen from my running programs.

I am running Windows 7 x64 on a machine with 4GB of RAM. At first I actually forgot this and would just restart the programs when Windows complained, but now that I remembered, the fact that Windows is complaining about me using 600MB of RAM (under 2GB even if you include memory used by the OS itself) seemed odd. So I pulled up the system process window to look at my total memory usage from my processes and system processes that were listed. It added up to just over 700MB, so I was still confused. Then I went to the Resource Monitor and opened the Memory tab. There I think I found my answer. It noted that I was actually only using 33% of my RAM. However, on the Physical Memory resource allocation bar, the Modified section was up to 2.3GB, the Standby section was up to 540MB, the Free section was under 20MB, Cached memory was listed at 2.8GB and Available memory was listed at 550MB. (These values being slightly rounded, of course, as thy are constantly changing as I write this.)

So apparently Windows 7 is using more memory than I am. I did, at some point in the past, make some modifications to the installed Windows services menu but that was only to disable certain hosting services, since I didn't want to do any media sharing, to enable the Telnet client, and remove Internet Explorer, but it could be my fault. Is there any way to make Windows not do this or at least cache a lot less aggressively so I stop getting these "Low on Memory" notices?

2
  • 2
    The OP misunderstands the problem. He is running low on backed virtual memory. All of his analysis about physical memory is irrelevant. You can have plenty of free physical memory but insufficient free backed virtual memory and the pop up memory warning is a warning about backed virtual memory being in short supply, not physical memory. (Though a leak of physical memory from a driver can cause the problem indirectly.) Aug 7, 2014 at 23:56
  • "The OP misunderstands the problem." As do several of the answerers. :( Jun 7, 2016 at 7:49

5 Answers 5

10

The Standby memory is not a problem, it is considered "free" and will be reallocated on request - it just contains memory recently used by programs, but is now freed. If another program requests more memory than is "Free" the system should allocate from the Standby set seamlessly (since "standby" memory isn't really in use at the moment).

Your excessive Modified memory is your problem, because it cannot be reallocated easily. See here. It's likely to be caused by either a memory leak (which seems to correspond with your first paragraph - what programs are leaking?) or a page-file being too small (is your page file fixed size or deactivated?).

5
  • 3
    As I noted in my comment for CJM's answer, I closed all my applications that were questionable (some indie PC games) and only have Task Manager, Resource Monitor, AVG, and Chrome running now but still have 1.6GB of modified memory. I do leave my computer on for days at a time, which matches the profile in the article you linked. However, a note on that web page was to look for a process with a large commit size. Currently that is a process from nSvcAppFlt.exe. It only has a working set size of 30MB but a commit size of 13.5GB. What gives?
    – grg-n-sox
    Aug 9, 2010 at 17:39
  • 2
    That's the program that's leaking your memory. Also see social.answers.microsoft.com/Forums/en-US/w7performance/thread/…. Remove it and all should be well.
    – akid
    Aug 9, 2010 at 18:00
  • Thank you very much. Actually that is kind of nifty. So basically if I am noticing my RAM being eaten up, I can just go to my resource monitor, see if the Modified memory section is huge, and see what process has a large commit size and I find my memory leaking program? Definitely a nice diagnostic tool for Windows.
    – grg-n-sox
    Aug 9, 2010 at 18:27
  • Either disable or upgrade your Nvidia firewall software. Nov 5, 2012 at 8:52
  • You have three "you" that should be "your" in the last paragraph. (can't suggest edit, too minor.) Feb 16, 2017 at 8:15
4

The SuperFetch pre-emptive caching is not your problem. Windows 7 will use as much spare memory as it can to pre-emptively cache what it thinks you are going to need next. If it gets it right, it saves you a bit of time and your applications appear quicker and more responsive.

If it guesses wrong, and you need some other data, Superfetch will release some of the memory it has, to enable you to load the data you really need. See: http://arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memory-usage-scaremongering.ars

If you are getting 'low memory' problems, it isn't going to be because of SuperFetch - as it will relinquish as much memory as necessary if applications demand it. You available memory (550MB) is what is being used by superfetch, so clearly you haven't ran out of memory yet. Even when you do use up all your RAM, your machine will fall back onto virtual memory, though you will want to avoid this because of the performance hit...

So it suggests you are 'low memory' problems are due to problems elsewhere - perhaps one of your leaking apps is consuming (and not relinquishing) other types of resources...

Either way, the solution is more likely to be found by tackling your buggy applications, than by messing about with SuperFetch...

1
  • I get that the Standby section of memory is part of cached memory, but I seriously have to doubt the problem is my programs. I just closed them all now so all I have running is AVG, Task Manager, Resource Monitor, and a single window of Chrome with 4 tabs. Only have 1042MB in use with 1417MB of Available memory, but I still have that huge chunk of Modified memory taking up 1633MB that the Task Manager is counting as used memory and giving me low memory notices. Is there a way to reduce the amount of Modified memory or just turn off the low memory notice?
    – grg-n-sox
    Aug 9, 2010 at 17:22
0

Since you don't think the issue is being caused by a program with a memory leak, the alternative would be to increase you page file size.

While the page file is not your main memory, it will allow the operating system to swap more data to the hard drive, and hopefully, stop the "out of memory" message. The only other option would be to remove the program associated with the process that has the huge 13GB foot print, though I have no idea what program would need to page that much memory, unless it was some high end PC game or 3D rendering software.

0

From my experience Standby memory creep is a real problem. For example, if I run Snagit in rolling-windows mode for a lengthy article there will be portions of the article that were not captured when running on only Standby memory. In any case, I find that my computer runs sluggish on Standby memory.

To solve the problem I use the memory optimizer out of the free Glary Utilities. My computer has 6 GIG of memory. When I first boot up I have about 2 GIG of In-Use memory, 2 GIG of Stand-by, and 2 GIG of what I call Free Free memory according to Windows' Resource Monitor. Within a half a day or so all my Free-Free memory would turn into Standby memory whether I was using the computer or not. Now I have Glary Utilities memory optimizer start up with Windows and can keep my computer running indefinitely having the full 2 GIG of Free-Free memory available.

Every time I sit down for another session I first double click the memory optimizer tray icon and do an optimize; asking for my original 2 GIG of Free-Free memory to be freed up. I can ask for more but that's the maximum it will free up regardless. It takes about 30 seconds for the optimizer to complete which is much less than that required for a re-boot. It has an auto-optimization mode but I haven't been able to figure out how to make it work.

3
  • Standby memory is not a problem. Aug 14, 2014 at 14:33
  • The "memory optimizer" should be scrapped. Standby RAM is RAM that was recently "in use" in processes. It was pushed out of those processes due to working set replacement, but it still contains what it did when it was "in use". If a process happens to need what's in one of those pages the page can be returned to the process quickly. That's why Standby is considered part of the count of "Cache". But Standby is also just as "Available" for other uses as Free RAM is. Your "memory optimizer" just moved a bunch of pages from Standby to Free, ie you shot down the Standby cache [...] Dec 20, 2018 at 21:31
  • [...] without making any more RAM available. Since "Standby" was always "Available" anyway! With Vista and later, Superfetch can now use part of Standby for its proactive file caching, but the pages are still repurposeable for use by other procsses as needed. So SuperFetch doesn't take any pages away from "Available" either. Get rid of the "memory manager", it is hurting your system's performance, causing unnecessary disk I/Os . Dec 20, 2018 at 21:33
-1

To Solve this problem

Goto start-run-msconfig, then services and remove the tick from "Windows driver foundation". click ok and restart the machine.

Remember - Only above mentioned steps will solve this problem. If you have disabled from services.msc, Its still active at the time of booting the OS and it will block your memory.

To verify this use the tool

1
  • Disabling the WDF service will disable any devices that depend on that driver model. It is a bad idea. Aug 14, 2014 at 14:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .