Unless you have the vm.overcommit_memory sysctl set to 2, and your overcommit is set to less than your system memory.
Then, when an application requests more memory than you have available, it will just get an error instead of needing to be killed by OOM when it attempts to use the memory at a later time.
I've used Linux for years and never in my life have I seen anything crash or close because of a oom killer. It's myth for me that it exists. Me looking at my firefox occupying 6GB of the 8GB ram and opening intellij so it becomes full and swap is on 3GB.
I had one stick of 16GB and it was not enough. I was going to get a second stick, but said screw it and got two 32GB (it's a laptop and only has two slots).
How does that even happen 💀💀 I have 2x8gb, usually have teams open, Firefox, telegram, a virtual machine with windows 10, a few IDEs and it usually only takes 10-12gb max mostly due to the vm requiring flat 8 gigs
You could probably configure your system monitor to show available memory - that is memory available given that cache can be dropped - rather than free memory that should always be as close to zero as possible.
Oh good question. Now I'm wondering. 44+35 is bigger than the 67GB I have, but normally I would expect pretty much all the RAM to hold cached data, where some is also marked as free in case a process needs it.
Can someone explain this memory screen, as your question has raised many more for me!
“Cache” means space used for disk caching. It’s free to be used for processes as needed, but the system consumes idle RAM until then to speed things up, so it’s technically not “free”, even though it isn’t used by system processes. In Linux, used - cache gives you the actual consumption by processes.
Many people who don't know what they're talking about in this thread. No, used memory does not include cached memory. You can confirm this trivially by running free -m and adding up the numbers (used + cached + free = total). Used memory can not be reclaimed until the process holding it frees it or dies. Not all cached memory can be reclaimed either, which is why the kernel reports an estimate of available memory. That's the number that really matters, because aside from some edges cases that's the number that determines whether you're out of memory or not.
Anyway the fact that you can't run Linux with 16GB is weird and indicates that some software you are using has a RAM leak (a Firefox extension perhaps?). Firefox will use memory if it's there but it's designed to cope with low memory as well, it just unloads tabs quicker so you have to reload often. There are also extensions that make tab unloading more aggressive, maybe that would help - especially if there's memory pressure from other processes too.
Yeah the cache as part of used memory theory didn't stack up. This comment (sorry, Lemmy probably doesn't handle the link well) showed 54GB in use, 30GB cached, and 13GB available. 54+12 = 67GB total so cached doesn't seem to be counted as in use since it should be counted as free (mostly).
In the end, I'm pretty sure it's a memory hog website. It kept filling up until GNOME crashed and I lost my progress (I was trying to order prints for 1000 photos on a horrible website that made me change settings one photo at a time, and the longer I took the more RAM filled up).
Anyway the fact that you can’t run Linux with 16GB is weird
I mean, it runs fine. It's more how I'm using it. Firefox 4GB, Element 1GB, Signal 1GB, Beeper 1GB, Steam 2GB, Joplin 1GB. That's all just open and idle (chats and Steam don't even have windows, just background) and are the minimum I would have open at any point. That's already 10GB. By the time I open a couple of windows in a Jetbrains IDE or a particularly demanding website and suddenly it's suffocating.
Don't be confused by cached ram, be confused by the oom killer activating while you have plenty of swap and for some reason it kills the shell you ran Firefox from.
If you want to go on a memory allocation adventure try disabling memory overcommit 🥲
systemd-oomd with its memory pressure model never really worked for me, even after configuring it to be fairly aggressive. My system still irreversibly locks up the second the memory and swap touches 100%. earlyoom with its more primitive model works much better and actually kills processes before the memory and swap hits the ceiling. Combine this with a 2x RAM size swap file and desktop Linux is finally as stable as Windows and macOS. It is just a shame that distros do not configure generous, dynamically growing, swap files and a good oom killer by default, and you have to discover this fundamental problem of the Linux kernel yourself on multiple different devices before realizing what you actually need to do to fix these random freezes.
I have a memory consumption issue with Ubuntu, because I stupidly set up the system to have 0 swap. This means under high memory pressure, the entire system could suddenly crash.
To be fair, Windows isn't a shining beacon either because whenever I attempt something very GPU intensive like running local LLMs the GPU overheats in a split second before the fans have time to spin up and the entire system shuts down.
So the system is a gaming laptop which might explain things. The CPU has liquid metal for cooling and a lower TDP so it's fine. Whereas the GPU has a higher TGP and if ran hard draws like 120W. If the GPU fans are not already on this quickly overwhelming the GPU thermally.
Disabling swap will prevent a system from suspending, which might be fine, but I use it.
And swap isn't some ancient relic. Sure, my 32GB desktop barely uses it, but my home server benefits greatly from having 64GB of swap in addition to 16GB of physical memory. It may not need to use much more than 16GB at any one time, but shit runs a lot better using a giant SSD swap with how many services I run.
System config is case by case, not "current year".
I traced this back to a particular rogue website. But yeah I think GNOME uses more RAM anyway, then having everything containerised in Bazzite is extra RAM I'm sure. Then having like 5 chat apps, Steam Firefox, etc open was easily eating up my 16GB RAM. Of course more RAM means more is used because unused RAM is wasted RAM, so it's hard to judge one system against another.