Memory management is an essential aspect of every System Administrator to improve the performance of a Linux system. It is always a good practice to monitor swap space usage in Linux to ensure that your system operates relative to its memory demands.
Therefore in this article we are going to look at ways to monitor swap space usage in a Linux systems.
What is Swap space?
Swap space is a restricted amount of physical memory that is allocated for use by the operating system when available memory has been fully utilized. It is memory management that involves swapping sections of memory to and from physical storage.
On most distributions of Linux, it is recommended that you set swap space when installing the operating system. The amount of swap space you can set for your Linux system may depend on the architecture and kernel version.
How do I check Swap space usage in Linux?
We shall look at different commands and tools that can help you to monitor your swap space usage in your Linux systems as follows:
1. Using the swapon Command
This command helps you to specify the devices on which paging and swapping will be done and we shall look at few important options.
To view all devices marked as swap in the /etc/fstab file you can use the
--all option. Though devices that are already working as swap space are skipped.
# swapon --all
If you want to view a summary of swap space usage by device, use the
--summary option as follows.
# swapon --summary Filename Type Size Used Priority /dev/sda10 partition 8282108 0 -1
--help option to view help information or open the manpage for more usage options.
2. Using /proc/swaps which is equivalent to swapon
The /proc filesystem is a very special virtual filesystem in Linux. It is also referred to as a process information pseudo-file system.
It actually does not contain ‘real’ files but runtime system information, for example system memory, devices mounted, hardware configuration and many more. Therefore you can also refer to it as a control and information base for the kernel.
To understand more about this filesystem read our article: Understanding /proc File System in Linux.
To check swap usage information, you can view the /proc/swaps file using the cat utility.
# cat /proc/swaps Filename Type Size Used Priority /dev/sda10 partition 8282108 0 -1
3. Using ‘free’ Command
The free command is used to display the amount of free and used system memory. Using the free command with -h option, which displays output in a human readable format.
# free -h total used free shared buffers cached Mem: 7.7G 4.7G 3.0G 408M 182M 1.8G -/+ buffers/cache: 2.7G 5.0G Swap: 7.9G 0B 7.9G
From the output above, you can see that the last line provides information about the system swap space. For more usage and examples of free command can be found at: 10 free Command to Check Memory Usage in Linux.
4. Using top Command
The top command displays processor activity of your Linux system, tasks managed by kernel in real-time. To understand how the top command works, read this article: 12 top Commands to Check Linux Process Activity
To check swap space usage with the help of ‘top’ command run the following command.
5. Using atop Command
The atop command is a system monitor that reports about activities of various processes. But importantly it also shows information about free and used memory space.
To know more about how to install and use atop command in Linux, read this article: Monitor Logging Activity of Linux System Processes
6. Using htop Command
The htop command is used to view processes in an interactive mode and also displays information about memory usage.
For more information regarding installation and usage about htop command, read this article: Htop – Interactive Linux Process Monitoring
7. Using the Glances Command
This is a cross-platform system monitoring tool that displays information about running processes, cpu load, storage space usage, memory usage, swap space usage and many more.
For more information regarding installation and usage about glances command, read this article: Glances – An Advanced Real Time Linux System Monitoring Tool
8. Using the vmstat Command
This command is used to display information about virtual memory statistics. To install vmstat on your Linux system, you can read the article below and see more usage examples:
Linux Performance Monitoring with Vmstat
You need to take note of the following in the swap field from the output of this command.
- si: Amount of memory swapped in from disk (s).
- so: Amount of memory swapped to disk (s).
These are easy methods one can use and follow to monitor swap space usage and hope this article was helpful. In case you need help or want to add any information relating to memory management in Linux systems, please post a comment. Stay connected to Tecmint.
11 thoughts on “8 Useful Commands to Monitor Swap Space Usage in Linux”
If you want to
topto monitor swap, you should add swap to the menu and sort by it. to do this:
fbring up the fields menu
dto dot swap so it will be seen
sto sort by swap
This is splendid! Many thanks for sharing.
Nice artical and nicely explained but i have one query that why to use swap space even if we have lot of free memory?
Swap space is used to temporarily hold data moved from the system RAM, which is not actively being used by the system or user especially when RAM is filling up. It is therefore a “backup RAM” of sorts. Even if you have enough RAM, it is still recommended to create a swap space for Linux.
Another reason is that it helps during hibernation of a computer, where the an image of the RAM captured and saved in the swap area. On restarting the computer, that image is reloaded into RAM, thereby enabling you to work from where you had stopped(point of hibernation).
I hope you find this helpful.
Good stuff, but you forgot to mention likely the best tool to monitor swap usage on Linux: smem.
Thanks for updating about smem tool, we will try it out and include the tool with examples to this list.
Thanks. That would be really great guys!
Actually ‘smem’ is a Very Heavy option as it loads the Python interpreter & chain.
Yes, you almost right, ‘smem’ is a good alternative tool to ‘free’ for monitoring memory usage in more detailed fashion, actually we are in process creating a separate article on smem by this weekend, till then stay tuned to updates
smem is great tool, thanks for mentioning this!
It’s a great tool indeed, here is a tutorial for using smem: https://www.tecmint.com/smem-linux-memory-usage-per-process-per-user/