RAM Usage Calculator
Calculate used, free and cached RAM percentages from free command output values.
Inputs
Leave as estimate if unsure; MemAvailable already accounts for reclaimable cache
Realistically Used
45.07%
Available for New Allocations
54.93%
Used (Total − MemAvailable, MB)
7,384
MemAvailable (MB)
9,000
Buffers + Cache (MB)
8,448
Naive Used = Total − Free (MB)
15,360
Note
MemAvailable (not MemFree) is the correct 'how much can I still allocate' figure — it already counts reclaimable buffers/cache as usable.
Step by step
Values used
MemTotal (MB) = 16,384; MemFree (MB) = 1,024; Buffers (MB) = 256; Cached (MB) = 8,192; MemAvailable (MB, if known — from /proc/meminfo) = 9,000
Realistic used memory
used = MemTotal − MemAvailable
Realistically Used
= 45.07
Available for New Allocations
= 54.93
Used (Total − MemAvailable, MB)
= 7,384
MemAvailable (MB)
= 9,000
Buffers + Cache (MB)
= 8,448
Naive Used = Total − Free (MB)
= 15,360
How it works
A common misreading of `free -h` treats MemFree as the true measure of available memory, but that column excludes reclaimable page cache and buffers — memory that's technically 'in use' but instantly reclaimable if an application needs it. MemAvailable (introduced in kernel 3.14, exposed in /proc/meminfo) is the kernel's own best estimate of how much memory could actually be allocated to new processes without swapping, and is the number you should compare against thresholds for out-of-memory risk.
Formula
Realistic used memory
used = MemTotal − MemAvailable
- T
- MemTotal
- A
- MemAvailable
Frequently Asked Questions
Why does 'free -h' show almost no free memory even when the system feels idle?
Because MemFree only counts memory not being used for anything at all, while Linux deliberately fills spare RAM with page cache to speed up file access. The 'available' column is what you should look at instead — it already subtracts out the memory the kernel considers instantly reclaimable.
What's the difference between Buffers and Cached in /proc/meminfo?
Buffers holds raw block-device I/O buffers (metadata-level caching close to the storage layer), while Cached holds page cache for file contents read through the filesystem. Both are reclaimable under memory pressure and both count toward MemAvailable.
Is high RAM usage always a problem?
Not if it's mostly cache — high 'used + cached' with low 'used (realistic)' and healthy MemAvailable is normal and even desirable, since it means the kernel is using otherwise-idle RAM productively. The actual concern is when MemAvailable itself gets low and the system starts swapping or invoking the OOM killer.