[SOLVED] Out of memory but WIndows does not register any usage of RAM ?

Mr_Spetzer

Prominent
Jun 26, 2020
4
0
510
Specs:
ASUS TUF GAMING B550 Motherboard
Ryzen 7 5800X
2 X 16GB G.Skill Trident Z Ram Sticks
RTX 3060 TI
Samsung 970 EVO 1TB M.2 Drive
Windows 10

Installed Programs:
View: https://i.imgur.com/BXo6qPy.png


During 2019 I was having issues where my computer would eventually crap out and I would need to restart it because all of my programs would crash or say they have run out of memory. Over the past two years I have replaced every single component in my PC to the point where the only explanation to my issue is Windows itself. It takes hours for the issue to rear its head as it takes time to eat all my memory from this ghost memory leak I can't find the source of. When pulling up my resource monitor on Task Manager I get nothing, absolutely nothing showing that there's something eating my ram up. When idle with all the background programs my computer sits at 22% memory usage at any given time.

I have reinstalled windows in the past and the computer worked just as intended for a while up until the problem started happening again. I could leave windows on for days at a time, but now it takes approximately 12 Hours for the system to start experiencing RAM issues from this mysterious Memory leak. Does anyone have any ideas?
 
Solution
Memory to windows is more than just ram, its also page file and virtual memory. Windows tells every program that runs that it has access to a very large memory pool, much larger than reality and it uses trickery to allow it all to keep running. Every process asks for X amount of memory but its also meant to release it when its finished. Some processes are badly written and don't release the memory and Windows only has so much it can commit before it runs out.

So yes, you can run out of memory and still have ram.

Most of the time the cause is actually a driver, not windows.

easy way to tell
Download Process explorer and run it as admin (it comes from Microsoft so its safe)

the default view is tree structure meaning like your...

Ralston18

Titan
Moderator
Open the Disk Management Window and expand so all drives and partitions are shown.

Take a screenshot and post here using imgur (www.imgur.com).

Use Process Explorer (free from Microsoft) to learn more about what is running on your computer.

https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

For the most part, I suspect that one of those installed programs may be trying, sooner or later, to update, backup, or simply "phone home". Or could now be corrupted and/or buggy. Does not release RAM even if the program ends itself.

In Task Manager check the Startup tab for what all is being launched at startup.

Look in Task Scheduler for any apps, utilities, etc. that get "triggered" and start running.

Boot up.

Open Resource Monitor and Process Explorer - two Windows side by side.

In Resource Monitor > Memory tab sort the memory usage in descending order.

Watch memory and the processes. May take a while.

Hopefully you will spot what happens or changes when memory starts going up.
 

Colif

Win 11 Master
Moderator
Memory to windows is more than just ram, its also page file and virtual memory. Windows tells every program that runs that it has access to a very large memory pool, much larger than reality and it uses trickery to allow it all to keep running. Every process asks for X amount of memory but its also meant to release it when its finished. Some processes are badly written and don't release the memory and Windows only has so much it can commit before it runs out.

So yes, you can run out of memory and still have ram.

Most of the time the cause is actually a driver, not windows.

easy way to tell
Download Process explorer and run it as admin (it comes from Microsoft so its safe)

the default view is tree structure meaning like your task manager screen, it will show what processes are under each service, but unlike task manager, it shows the ram usage of each part so you can see what is eating your ram

Private bytes = Ram + page file usage
Working set = actual ram usage

This page shows what all the colours and headings mean, link at bottom of it shows how to use it to find problems. You can right click headers and run an av scan from within the program.

now if you run it, there are graphs along top of the application, click on one and choose the Memory tab
How big is the Driver WS? its on bottom left of the window
VJvtw6N.jpg

I have seen examples where its so long the entire number is not even showing in the column

Problem with Task Manager & Process Explorer is it doesn't show driver names. NO way to see what is in the WS So you aren't seeing entire picture of ram usage there really. you can add a Maximum WS column but it doesn't list drivers in the main window so its pointless.

only way to know what is actually in the Driver WS is to run poolmon and look through the tags of the processes in non paged, and see which has biggest difference between allocated and frees. Something isn't letting go.

video shows basics and has link to dl site in description
if you want help, just post screenshots of poolmon results.
you only want to look at non paged pool and non Microsoft
list of most of the tags - https://github.com/jjzhang166/windbgtool/blob/master/Dependecies/x64/triage/pooltag.txt

helps to look at poolmon at idle and at full usage to spot differences, some windows processes will always have lots of memory as they also manage memory, so hard to not use it as well.
 
Last edited:
Solution

Mr_Spetzer

Prominent
Jun 26, 2020
4
0
510
I'll get back to y'all with my results from looking at everything. It takes a while to actually view all this so I'll probably wait until programs start shutting down to find the culprit.
 

Mr_Spetzer

Prominent
Jun 26, 2020
4
0
510
Memory to windows is more than just ram, its also page file and virtual memory. Windows tells every program that runs that it has access to a very large memory pool, much larger than reality and it uses trickery to allow it all to keep running. Every process asks for X amount of memory but its also meant to release it when its finished. Some processes are badly written and don't release the memory and Windows only has so much it can commit before it runs out.

So yes, you can run out of memory and still have ram.

Most of the time the cause is actually a driver, not windows.

easy way to tell
Download Process explorer and run it as admin (it comes from Microsoft so its safe)

the default view is tree structure meaning like your task manager screen, it will show what processes are under each service, but unlike task manager, it shows the ram usage of each part so you can see what is eating your ram

Private bytes = Ram + page file usage
Working set = actual ram usage

This page shows what all the colours and headings mean, link at bottom of it shows how to use it to find problems. You can right click headers and run an av scan from within the program.

now if you run it, there are graphs along top of the application, click on one and choose the Memory tab
How big is the Driver WS? its on bottom left of the window
VJvtw6N.jpg

I have seen examples where its so long the entire number is not even showing in the column

Problem with Task Manager & Process Explorer is it doesn't show driver names. NO way to see what is in the WS So you aren't seeing entire picture of ram usage there really. you can add a Maximum WS column but it doesn't list drivers in the main window so its pointless.

only way to know what is actually in the Driver WS is to run poolmon and look through the tags of the processes in non paged, and see which has biggest difference between allocated and frees. Something isn't letting go.

video shows basics and has link to dl site in description
if you want help, just post screenshots of poolmon results.
you only want to look at non paged pool and non Microsoft
list of most of the tags - https://github.com/jjzhang166/windbgtool/blob/master/Dependecies/x64/triage/pooltag.txt

helps to look at poolmon at idle and at full usage to spot differences, some windows processes will always have lots of memory as they also manage memory, so hard to not use it as well.


(Before)
Poolmon: View: https://i.imgur.com/aUNYsVT.png

Process Explorer: View: https://i.imgur.com/ec1TsX5.png

PE Memory: View: https://i.imgur.com/mgIRaQQ.png


(After)
Poolmon: View: https://i.imgur.com/AproGo1.png

Process Explorer: View: https://i.imgur.com/BYJWMJW.png

PE Memory: View: https://i.imgur.com/fxQp3Cq.png

(Disregard Project Zomboid, I was playing it at the time this happened)

My brain is fried right now trying to figure out what any of this means at all.