High memory usage on MacOS Catalina
Yes - your Mac is perfectly normal and here's how to tell precisely how much extra RAM you can allocate to reach pre-designed limits that Apple has established for macOS.
- no swap (which isn't a problem either, just if you wait for swapping then it's a problem)
- no memory pressure
- all memory should get allocated since unused RAM is a waste the system is designed to allocate it all and if it cannot, you purchased too much RAM.
You’ve provided very excellent details and thinking in this analysis. Overall, everything looks to be functioning perfectly, well allocating memory to all the programs you have, zero memory pressure, the compression routine is starting to kick in - you have a very balanced amount of wired to application-specific memory.
I wouldn’t worry a bit and this looks exactly like a normal system running in balance with excess RAM available for you to add significant more programs or data processing.
All UNIX type operating systems are designed to keep in RAM all the data it can and minimize the amount of free memory since it can release the allocations instantly when a new use is higher priority than the old cached data that can is there just in case:
- Isn't Inactive memory a waste of resources?
- https://jvns.ca/blog/2016/12/03/how-much-memory-is-my-process-using-/
Basically, the memory system has many layers of physical and logical abstractions that let it commit what looks to be a poor allocation on first glance that in practice is efficient, speedy and very well tested in practice.
When you would start to worry about not enough memory, the system will draw the pressure chart in yellow and red. Even running there can be just fine, it only means you can’t add more memory hungry processes, and not that you’re actually being slowed due to pressure.
- What scale or measure does Mavericks' and Yosemite's "memory pressure" adhere to?
From the above link, you can convince yourself how much extra memory you have ready to go by artificially running a command to over-allocate memory until you reach the warning level (or the critical level). Here are screen shots of my MacBook that runs every bit as fast when over-allocated to critical - everything is as snappy in Safari / Photos / whatever as it is with zero memory pressure.
The above image is everything going back to green after running the critical command and pressing control+C (or closing the terminal window running the memory_pressure diagnostic.
sudo memory_pressure -l warn
sudo memory_pressure -l critical
Here are the images after warning and critical - you can see how much allocation was needed to push the system to these thresholds:
So, on my Mac that only has 8 GB of RAM, I needed to allocate another 4.65 GB of memory to reach the "warning" state and another 6.46 GB of memory to reach the "critical" state where there's no longer an abundance of free memory for the next use. Even then, the system was not slowed any perceptible amount. Pretty amazing for an m3 chip running 1.1 GHz or so that was build 5 years ago.
My mac is using also quite a lot of memory. I am running just few programs, far from my heavy tasks and I have 32GB and my system is using 22GB. But memory pressure graph is low green line so it looks like that it manage memory differently than e.g. windows. On windows I have a problem to reach over 16GB so I think windows is cleaning ram when possible, MacOS most probably keeps stuff in memory until it is really needed somewhere else.