Calculate overall memory utilization percentage across physical RAM and swap.
Linux aggressively uses spare RAM for disk buffers and page cache because reclaiming that memory for an application is essentially free and instantaneous. Naively looking at MemFree alone therefore overstates memory pressure. Real used memory subtracts buffers and cached (which the kernel will happily hand back on demand) from the total, alongside free memory, giving a truer picture of what applications actually hold.
Used memory
used = total − free − buffers − cached
Usage percentage
usage% = used / total × 100
Because Linux fills spare RAM with disk cache and buffers to speed up repeated I/O. That memory is reclaimed instantly if an application needs it, so it should be counted as available, not used — which is exactly what modern `free` output's 'available' column reflects.
It's a simplified approximation. The kernel's MemAvailable estimate also accounts for reclaimable slab memory and watermarks, so it can differ slightly from a plain free+buffers+cached sum, but the concept is the same.
Sustained usage above 85-90% of real (non-cache) memory is a common warning threshold, since it leaves little room before the OOM killer or heavy swapping kicks in under a load spike.