Swap space (also known as paging) is nothing but computer memory management involving swapping regions of memory to and from storage. You can see swap usage summary by device using any one of the following commands. You may have to login as root user to use the following commands.
Tutorial details | |
---|---|
Difficulty | Easy (rss) |
Root privileges | Yes |
Requirements | None |
Time | 5m |
Check swap usage size and utilization in Linux
The procedure to check swap space usage and size in Linux is as follows:
- Open a terminal application.
- To see swap size in Linux, type the command: swapon -s.
- You can also refer to the /proc/swaps file to see swap areas in use on Linux.
- Type free -m to see both your ram and your swap space usage in Linux.
- Finally, one can use the top or htop command to look for swap space Utilization on Linux too.
How to Check Swap Space in Linux using /proc/swaps file
Type the following cat command to see total and used swap size:
# cat /proc/swaps
Sample outputs:
Filename Type Size Used Priority /dev/sda3 partition 6291448 65680 0
Another option is to type the grep command as follows:
grep Swap /proc/meminfo
SwapCached: 0 kB SwapTotal: 524284 kB SwapFree: 524284 kB
Look for swap space in Linux using swapon command
Type the following command to show swap usage summary by device
# swapon -s
Sample outputs:
Filename Type Size Used Priority /dev/sda3 partition 6291448 65680 0
Use free command to monitor swap space usage
Use the free command as follows:
# free -g
# free -k
# free -m
Sample outputs:
total used free shared buffers cached
Mem: 11909 11645 264 0 324 8980
-/+ buffers/cache: 2341 9568
Swap: 6143 64 6079
See swap size in Linux using vmstat command
Type the following vmstat command:
# vmstat
# vmstat 1 5
Sample outputs:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 9 1209512 101352 1504 127980 0 3 11 20 60 55 3 1 95 1 2 11 1209640 101292 1508 134132 844 424 5608 964 23280 15012 2 8 20 70 0 10 1210052 108132 1532 125764 648 660 10548 916 22237 18103 3 10 11 77 1 13 1209892 106484 1500 128052 796 240 10484 980 24024 12692 2 8 24 67 1 9 1209332 113412 1500 124028 1608 168 2472 620 28854 13761 2 8 20 70
Note down the following output from swap field:
- si: Amount of memory swapped in from disk (/s).
- so: Amount of memory swapped to disk (/s).
top/atop/htop/glances command
Type the following commands:
# atop
# htop
# top
# glances
Sample outputs from top command:
top - 02:54:24 up 15:24, 4 users, load average: 0.45, 4.84, 6.75
Tasks: 266 total, 1 running, 264 sleeping, 0 stopped, 1 zombie
Cpu(s): 3.2%us, 1.4%sy, 0.0%ni, 94.4%id, 1.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 8120568k total, 7673584k used, 446984k free, 4516k buffers
Swap: 15859708k total, 1167408k used, 14692300k free, 1151972k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13491 vivek 20 0 1137m 279m 6692 S 10 3.5 19:17.47 firefox
5663 vivek 10 -10 1564m 1.1g 59m S 8 14.5 5:10.94 vmware-vmx
2661 root 20 0 352m 185m 8604 S 6 2.3 65:40.17 Xorg
3752 vivek 20 0 3566m 2.6g 12m S 6 33.6 63:44.35 compiz
4798 vivek 20 0 900m 50m 4992 S 2 0.6 0:11.04 chrome
5539 vivek 20 0 1388m 838m 780m S 2 10.6 1:45.78 VirtualBox
6297 root 20 0 0 0 0 S 2 0.0 0:00.15 kworker/2:0
6646 root 20 0 19252 1404 936 R 2 0.0 0:00.01 top
1 root 20 0 8404 644 608 S 0 0.0 0:03.32 init
2 root 20 0 0 0 0 S 0 0.0 0:00.03 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:02.30 ksoftirqd/0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0 0.0 0:00.24 watchdog/0
37 root 0 -20 0 0 0 S 0 0.0 0:00.00 cpuset
38 root 0 -20 0 0 0 S 0 0.0 0:00.00 khelper
39 root 20 0 0 0 0 S 0 0.0 0:00.00 kdevtmpfs
40 root 0 -20 0 0 0 S 0 0.0 0:00.00 netns
Sample outputs from htop command:
Linux Find Out What Process Are Using Swap Space
Try smem command:
smem
OR
top
Linux GUI tool to monitor swap space size and usage
Try Gnome or KDE system monitor tool. For example, the GNOME System Monitor shows you what programs are running and how much processor time, memory (including paging/swap space size), and disk space are being used.
Conclusion
This page showed you how to check for swap space size and utilization in Linux. If you see a large percentage of the swap space utilization, then it is time to add more physical RAM to the Linux system. Another option is to increase swap space by adding a swap file on Linux. Please see the following resources for more info:
- Linux: Should You Use Twice the Amount of Ram as Swap Space?
- See man pages – for more information.
- Swap/Paging facts and questions by Ubuntu wiki
🐧 11 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
how to free swap partition or re-size it to bigger space w/out creating swap file as a remedy?
Disable swap (Take care if the swap memory is in use: information goes from swap to RAM)
# swapoff -a
With lvm partition, you can resize it like this:
Suppose swap partition in /dev/vg0/swap
# lvresize -L +1G /dev/vg0/swap
next, (re)setup swap memory :
# mkswap /dev/vg0/swap
Now, You can re-enable swap like this:
# swapon -a
Thanks!!!
this info is the best!
Thank you for sharing. May I please request you to clarify what UNITS are used when printing various numbers in the output of commands you use. I have been searching to get details on the “swapon -s” output column “Size” (the man page omits the units as well).
Is it reported in bytesm mb,gb?
Is it reported as multiples of “Memory Page Size (as in getconf PAGESIZE)”?
Is it reported as multiples of some disk block setting (as in the output of blockdev –getsize64 /dev/swap/swap)
Some other unit?
Thank you
I
I found the answer to my own question, and here it is:
The units used in “swapon -s” output is “kB (kilo bytes)”.
OS Details:
Route to My Solution
Command:
#grep SwapTotal /proc/meminfo
Which gave me the output (with units kB):
SwapTotal: 104603632 kB
And swapon -s output is:
Used bc to add up the two “Size” numbers
The sum and the “SwapTotal” output from earlier match (104603632).
Therefore, the units must be kB or kilobytes
Thanks for digging out the answer. I appreciate your post.
“iotop” also a best tool ..
Personally, I like to use:
cat /proc/meminfo | grep Swap
That will output the total swap stats like so:
SwapCached: 0 kB
SwapTotal: 999996 kB
SwapFree: 999996 kB
It always displays output, even if there is no swap, which may help if you are using the command in scripts etc.
cat?
grep Swap /proc/meminfo
how do i know that I’m using swap not RAM?
Why I can’t see swap usage on htop command?, I guess my configuration it’s all messed up, here’s an example of what I get with htop:
Swp [ 0K/8.00G]