When your Linux system starts slowing down, the first suspect is usually memory. Is RAM maxing out? Is swap being used? Is some process eating up everything?
Luckily, Linux offers simple yet powerful commands to help monitor memory usage β and two of the most underrated ones are:
free -m
watch -n 1 free -m
Together, they give you a real-time, clear view of your memory status, right from the terminal.
Letβs dive into what these commands do and how you can use them like a pro.
π What is free -m
?
The free
command shows how much memory and swap space is being used, free, cached, and available on your system.
The -m
flag tells free
to display the values in megabytes.
β Basic Usage:
free -m
Sample Output:
total used free shared buff/cache available
Mem: 7824 1836 612 130 5375 5583
Swap: 2047 0 2047
Breakdown of the Output
Column | Meaning |
---|---|
total | Total RAM or swap space |
used | Memory currently in use |
free | Memory that is completely unused |
shared | Memory shared between processes |
buff/cache | Memory used by buffers and cache |
available | Estimation of memory available for new processes |
π‘ Pro Tip:
Donβt panic if used
looks high. Linux uses free memory for caching to speed things up. The available
column gives a better picture of what’s really usable.
π What is watch -n 1 free -m
?
This command runs free -m
every second, updating the output in real-time.
β Command:
watch -n 1 free -m
What It Does:
watch
runs a command repeatedly.-n 1
means run it every 1 second.- So you get a live dashboard of memory usage.
πΌ When to Use These Commands?
- π’ Your system is slowing down
- π§ You’re debugging memory leaks
- π οΈ You want to monitor how apps consume memory
- π You’re watching memory usage during load tests
π§ Common Use Cases
1. β Monitor a Laravel app under load:
ab -n 1000 -c 10 http://localhost/api/test
watch -n 1 free -m
Watch how your app consumes memory during performance tests.
2. β Detect Swap Usage:
If Swap used
starts increasing, your physical RAM is full, and the system is using disk (much slower).
free -m | grep Swap
3. β Combine with Process Monitoring:
Run in two terminals:
- Terminal 1:
watch -n 1 free -m
Terminal 2:
htop
Youβll see which process is using the memory in real time.
π Bonus Tip: Get a One-Liner Summary
free -m | awk 'NR==2{printf "Used: %sMB | Free: %sMB | Available: %sMB\n", $3,$4,$7}'
This outputs something like:
Used: 1856MB | Free: 612MB | Available: 5583MB
Perfect for scripts and logs.
π§ Final Thoughts
Whether you’re a system admin or a developer managing servers, keeping an eye on memory is crucial. Tools like free -m
and watch -n 1 free -m
are simple, fast, and already built into every Linux distro β no setup required.
The next time your system lags or you run a big process, use these commands to stay one step ahead.