Only 9.5GB usable of 16GB, WTH?

Joined
Jun 17, 2017
Messages
50
My rig has 16GB of RAM, Superfetch is disabled and the page file is disabled because I'm a power user and I do production work every day. For some reason every time my RAM usage hits 9.5GB something crashes. A tab in Fixed Firefox, my SQL query logs, etc. It's as if I've hit the 16GB limit directly. Now I'm aware that I can't fully prevent Windows from dumping mud pies in the RAM but I do use RAMMap to clear the mud pies out every so often. Even with RAMMap and the "mud pie" junk accounted for I should still have 6.5GB of RAM available. And unless I've missed something between now and the 90s if my RAM was bad my PC wouldn't POST let alone boot in to Windows to a very usable state.

I do web development and have highly optimized, cleaned up and themed version of Firefox but I know that isn't the issue since I hit the issue with Chrome occasionally (no GUI is not a GUI) or other RAM intensive programs. I'm not interested in buying more RAM right now because I'm either going to switch from my AM3+ to an AM4 or the new Threadripper in a few months. I mean, 16GB should be enough. I've never encountered this issue on any of my client's computers (phasing out the PC repair bit to concentrate on my web business) and I've never heard anything from any of my tech friends. I'm not interested in debating why I should turn on my page file because last time I checked none of us are using 16KB of RAM that cost $1,200. I can't even say using all 16GB of RAM is like overclocking...it's more like your GPU is advertised at 950MHz but the heat drops the clocks to 400-600MHz and the game performance drops too. Only for me this is not gaming, it's my livelihood and being able to work uninterrupted. Suggestions please? Also my first post here, I've been a very long time reader.
 
Are you looking at committed memory or in-use memory when you talk about 9.5G? Committed memory can be significantly higher. Without a page file you can never use 100% of memory (except as disk cache).
 
Last edited:
So earlier this evening I discovered Windows "Commit" memory which is not represented by the "total" RAM usage, lame. So I turned it on and discovered this:

svJOS.png


OCbKx.jpg


Well that explains a few things! I had to show the "Commit" column in the Task Manager (View menu, Select Columns...).

Now that I knew what the problem was I was searching for massive memory leak issues for MariaDB. Turns out that the my.ini file had the following:

innodb_buffer_pool_size = 2014M

I set it to 50M instead and restated the service.

I think your post was what encouraged me to start digging deeper in to Committed memory, so for that and the following chain of events, thank you Luke!
 
I don't think you will see much of a performance improvement by disabling the page file. At the very least, its there to provide a cushion as the last level of virtual memory in the system.

Linux, iirc, has a setting to control the "swappiness" of how pages are cached on disk. Lowering this setting can improve performance by reducing the kernel's tendency to swap. However, this comes with the drawback of how to handle an application that suddenly tries to allocate a lot of memory. Pre-caching to disk allows the in-ram copies to be freed instantly rather than writing to disk before reallocating.

I imagine windows does something similar, but we don't have a way to configure this. If you're concerned about swap performance when it does get used, you can manually set a static size so the file wont need to grow. And keep it on a SSD, preferably one other than your OS disk.
 
I don't think you will see much of a performance improvement by disabling the page file. At the very least, its there to provide a cushion as the last level of virtual memory in the system.
I'd go one step further and say that it's a bad idea to dick with the page file. Windows does a decent job of managing it all by itself, and there's little-to-no upside by fooling with it unless you have some very bizarre and specific application scenario.
 
I'd go one step further and say that it's a bad idea to dick with the page file. Windows does a decent job of managing it all by itself, and there's little-to-no upside by fooling with it unless you have some very bizarre and specific application scenario.

multi card GPU use with OpenCL comes to mind. Better set that baby to 16 Gigs or more. But that's all I could come up with.
 
Linux, iirc, has a setting to control the "swappiness" of how pages are cached on disk. Lowering this setting can improve performance by reducing the kernel's tendency to swap. However, this comes with the drawback of how to handle an application that suddenly tries to allocate a lot of memory. Pre-caching to disk allows the in-ram copies to be freed instantly rather than writing to disk before reallocating.

I hate the default swappiness setting. Preemptive swapping makes no sense on a workstation.

In general Linux is bad at memory management. Not only will it overcommit (a property shared by all unix clones, I think), but it will not fail "small" memory allocations (because they are scared of all the untested error handling code) . These problems are papered over by a low memory process killer, which doesn't always work.
 
and the page file is disabled because it sound cool
FTFY
Disabling you pagefile is idiotic for your memory performance. You are basically pilling up your physical ram with unneded data and junk and minimizing the size of your disk cache.

not optimal for a "power user"
 
So earlier this evening I discovered Windows "Commit" memory which is not represented by the "total" RAM usage, lame. So I turned it on and discovered this:
!

understanding the difference between committed memory and private memory is the reason to understand why you don't want to disable the page file. You just forced all the commit size up to physical ram because you have no other address space than your physical RAM now.
Pagefil is NOT just about running out of ram. its a method to optimize your entire memory usage and performance.
Offcause committed size is not counted into you ram usage. Because committed size is a memory measurements not RAM you can have 16gb committed size on a 4gb RAM system. What would you have left -12GB of ram? Do you know owe you syststem RAM ?

You need to get out of the DOS way of thinking of RAM and memory and just enable that pagefile.
And if you are using any ram "cleaners" do not use that crap that is again for people that does not know how basic window memory handling works.


I hate the default swappiness setting. Preemptive swapping makes no sense on a workstation.
I would have to differ freeing up potential RAM for a bigger possible diskcache is nice to have ready. i dont know how /nix does it. but there is less of a drawback than benefits of have the pagefil doing its work under windows
 
Last edited:
Back
Top