Skip to content
Calcrivo

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

  1. 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

  2. Realistic used memory

    used = MemTotal − MemAvailable

  3. Realistically Used

    = 45.07

  4. Available for New Allocations

    = 54.93

  5. Used (Total − MemAvailable, MB)

    = 7,384

  6. MemAvailable (MB)

    = 9,000

  7. Buffers + Cache (MB)

    = 8,448

  8. 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.

You might also need