Why half of my RAM of 8GB is missing?

"Why is half my RAM of 8GB is missing?"

It is not missing, nor is it even unused. Approximately 4GiB are in active use, and an additional 3.3GiB is inactive, but also in use. The 3.3GiB is ready to be paged to disk, but you have no space allocated for it, so it remains in physical RAM. "Modified" memory is effectively no different than "In Use" if starved of disk pages.

Neither a 64-bit OS nor PAE enables any 32-bit process to use more than 4GiB (2 user/2 kernel on 32-bit/PAE, 4GiB user on x64. See: Pushing the Limits of Windows: Virtual Memory) of memory whether that memory is currently paged into physical RAM or onto disk.

So, for Firefox, which does not have a 64-bit version, this means that Firefox is ultimately limited to 2GiB (PAE) or 4GiB (x64) of user space memory regardless of installed RAM. Even if you had 64GiB physical RAM installed, if Firefox exceeds usage, it will exhaust its memory limit.

This looks excessive and possibly indicative of a memory or handle leak. Worse, in your case, the pagefile is not large enough to move any of the leaking process to disk, so you have essentially forced it to leak exclusively into physical RAM.

In TechNet article Having a problem with Excessive "modified" memory usage in Win7 x64, upwards of 3.6GB, any suggestions?, a user with similar symptoms (large shared/modified block) finds:

Modified memory is memory that was allocated by some application and then removed from the application's working set, usually because it hasn't been used for a long time. The fact that most of your memory is in this state means two things:

  1. Some app (or multiple apps) allocated a lot of memory, and is not actively using most of it. Often (but not always) this is due to a memory leak in the app.
  2. The pagefile is not large enough for the system to move all this unused memory to disk.

In the end, as suggested by magicandre1981, the issue was the Dell Wireless (Broadcom) LAN tray app:

Thanks everyone, I was having the same issue and added handles and GDI and saw BCMWLTRY.EXE, the Dell wireless tray util, is creating handles nonstop. Thanks for the advice. Update: So I disabled the service that started BCMWLTRY.EXE + rebooted and I'm now not seeing the handle leaks. WLTRAY.EXE is still running but it's not leaking handles.

Likewise, in Excessive modified memory in shared memory,

Dell wlan utility was the reason. Killing the bcmwltry.exe process in task manager released memory. But this process initiated again after few sec.. It was kinda crappy - i couldnt uninstall it. Luckily this notebook needed OS change anyway so i`m not even trying to fix this. ... Same exact problem here. Killing and disabling DW WLAN (bcmwltry.exe) freed up 5 GB of memory. It leaks.

The tray app BCMWLTRY.EXE is likewise implicated in Pagefile keeps growing until I run out of memory

Additional references for BCMWLTRY.EXE/Dell Wireless Tray problems (WLTRAY.EXE), diagnostics, and resolutions:

  • Massive Memory Leak On WLAN Card Driver (BCMWLTRY.EXE)
  • WLAN AutoConfig - Memory Leak
  • Locating A Massive Memory Leak
  • Memory leak issue
  • "Your computer is running low on memory. Quit other programs, and then try again."
  • Getting 'running low on memory errors' on Windows 7 64-bit with 8GB RAM

So, it's not actually the driver in these cases, it's the tray app that comes with the driver. I would agree that given the OEM of your wireless card, that BCMWLTRY.EXE is running, and the rather large number of nearly identical problems, this is part one of the problem.

You can also add the "Handles" and "Page Faults" columns to Task Manager to check for excessive usage of either, in the case that there are more errant programs. You can use SysInternals VMMap to view allocation of virtual memory from the point of view of each process. Handle leaks are insidious because they are also likely leaking Windows objects. Microsoft makes available a tool called Application Verifier that, among other things, will help track down leaking handles.

So the answer is: You likely have a memory leak, it is likely in BCMWLTRY.EXE (or some other app leaking handles or similar shared resources), and the OS has been starved of disk backed pages to more "gracefully"* handle such a condition.


* There's nothing particularly "graceful" about a memory leak, but a ~4GiB pagefile would have allowed the process to run up to its inherit limit (acting as a quota) and then crash, creating a obvious pattern in the event log of a specific process crashing followed by a release of all the resources and, if restarted, repeat. Without the inherent 32-bit limit address space limit, it could have chewed through a lot of disk space first. As it is, all the processes are now resource constrained, so it's less clear if it's being closed due to its own leak (Firefox), or because another app (BCMWLTRY).


Your modified memory list is too high (see the large orange bar in ResMon). This is using over 3GB RAM. One known cause are old Broadcom Wifi drivers. If your laptop uses a Broadcom Wifi adapter, update the drivers or stop the BCMWLTRY.EXE from startup with msconfig.exe to fix it.


I had a prank played on me some time ago where somebody had edited my MSConfig settings, limiting my maximum memory, like so:

MaxMem

So this is another potential cause.


The Problem seems to be because of small Page file. As per your screen shot, your system has a considerable Modified Memory. Modified Memory is the memory that is waiting to be written to the page file before it is moved to the Standby. Increasing your pagefile would effectively reduce your Modified Memory, which would effectively increase your Standby and available memory.


Your system is using all of your 8GB of RAM, it just not using it as efficiently as you would wish. I see a huge amount of cache on the system. Windows will automatically decrease the cache size as applications need more RAM.

Regarding page files size, I'll quote someone (Mark Russinovich) who actually knows what they are talking about:

How Big Should I Make the Paging File?

Perhaps one of the most commonly asked questions related to virtual memory is, how big should I make the paging file? There’s no end of ridiculous advice out on the web and in the newsstand magazines that cover Windows, and even Microsoft has published misleading recommendations. Almost all the suggestions are based on multiplying RAM size by some factor, with common values being 1.2, 1.5 and 2.

If you want the know the real truth of what is happening on your system then just stop right now and read Mark's whole series of articles on Windows memory management. He's probably the worlds foremost authority on this sort of stuff.

I myself set the absolute minimum page file size on my Windows systems (just enough to save a mini dump) or even disable it entirely. You never, ever want to hit that page file during normal system usage. If you do then it's time to buy more RAM or close some apps, you choose.

Consider the speed in RAM vs. SSD or hard disk when correlated to human time scales. [Storage Class Memory: Technology, Systems and Applications - Page 22]

  • A RAM access takes about 60ns, lets equate that to 1 minute in a human relatable scale.
  • A SSD access takes about 50us, that's about 800 times slower than RAM, which makes it about 14 hours at a human scale.
  • A fast hard drive access takes 5ms, that's about 83,000 times slower than RAM, which makes it about 60 days at a human scale.

Do you really want your RAM to get semi-randomly shuffled off to a storage device that's 1K times or 100K times slower than RAM just because you didn't have enough RAM?

Another point that I haven't seen anyone bring up is that the Intel HD Graphics 3000 chip uses "shared memory" From the screenshot you show of it, it can consume as much as 1.7GB of your RAM. So kiss at about 1GB of your total RAM goodbye there.