Shared server guidance · Question & answer

Why does Linux show high memory usage even when the server is healthy?

Linux uses memory for caches as well as applications. A low free value is not, by itself, a memory problem; available estimates how much can support new work without swapping. Assess memory pressure through trends, swap activity, application latency and out-of-memory evidence rather than aiming for an empty cache.

IntermediateLinux VPS and dedicated servers with GNU utilities
Go to the answer

Before you start

  • An authorised SSH session on the Linux server.

Instructions

1. Inspect the memory summary

Read total, available, buff/cache and swap together. Tool versions can calculate the used column differently, so prefer the documented meanings of the installed version.

Remote Linux shell
free -h

The human-readable summary is a snapshot. Cache is often useful and should not be cleared as a routine performance remedy.

2. Look for sustained pressure

If the kernel exposes pressure-stall information, inspect memory stalls alongside repeated application measurements. This helps identify time lost waiting for resources rather than merely allocated bytes.

Remote Linux shell
cat /proc/pressure/memory

avg10, avg60 and avg300 describe recent stall ratios. A missing file may mean PSI is unavailable or restricted in this environment.

Check the result

  • Available memory and stall behaviour remain appropriate under representative load, with no unexpected OOM events or sustained swapping.

Troubleshooting

Available memory falls steadily
Compare process growth, workload concurrency, cache needs and configured limits over time.
The host has free RAM but a service is killed
The service or container may have a lower cgroup limit than the host total. Inspect the effective limit before adding memory blindly.

Official references

Use the documentation for your installed version when a flag, service name or platform feature differs.