Here's a procedure how you can add additional swap space to a running RHEL system.
This procedure assumes you will want to add 8 Gigabytes of swap space, and we will be using LVM to do so. To get information from Red Hat on recommended swap space sizes, take a look here: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/ch-swapspace.html.
First start by checking what the current swap space size is, by using the free command:
This particular system has 16 GB of swap space (look in the "total" column next to "Swap:"). Using the -m option with the free command displays the memory values in megabytes. Using the -t option will provide the totals.# free -m -t total used free shared buffers cached Mem: 129013 124325 4688 9 173 97460 -/+ buffers/cache: 26691 102322 Swap: 16383 8057 8326 Total: 145397 132382 13015
You can also see that the system has used 8057 MB of it's swap space, almost half of the swap space available.
Then, figure out how the current swap spaces are configured now:
This shows that there are 2 paging spaces of 8 GB each. To increase the swap space on the system, we'll add another swap space of 8 GB, so the total swap space will go up to 24 GB.# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 8388604 8262740 -1 /dev/dm-8 partition 8388604 0 -2
To get a view of what logical volumes exist on the system, use the dmsetup command:
This shows that there are 2 logical volumes, swaplv00, and swaplv01. We'll create swaplv02 as the third swap space on the system.# dmsetup ls rootvg00-optlv00 (253:7) rootvg00-tmplv00 (253:3) rootvg00-varlv00 (253:2) rootvg00-homelv00 (253:6) rootvg00-rootlv00 (253:0) rootvg00-usrlocallv00 (253:5) rootvg00-swaplv01 (253:8) rootvg00-usrlv00 (253:4) rootvg00-swaplv00 (253:1)
Another good way to see the same information, is by using the lvs command:
This gives you the information that the logical volumes have been created in the rootvg00 volume group. We'll create the new swap space in the same volume group, using the lvcreate command:# lvs 2>/dev/null LV VG Attr LSize homelv00 rootvg00 -wi-ao---- 10.00g optlv00 rootvg00 -wi-ao---- 8.00g rootlv00 rootvg00 -wi-ao---- 2.00g swaplv00 rootvg00 -wi-ao---- 8.00g swaplv01 rootvg00 -wi-ao---- 8.00g tmplv00 rootvg00 -wi-ao---- 5.00g usrlocallv00 rootvg00 -wi-ao---- 1.00g usrlv00 rootvg00 -wi-ao---- 5.00g varlv00 rootvg00 -wi-ao---- 4.00g
Using the -n option of the lvcreate command, you can specify the name of the logical volume. The -L option specifies the size (in this case 8G), and you end the command with the volume group name.# lvcreate -n swaplv02 -L 8G rootvg00 Logical volume "swaplv02" created
Next, you'll have to tell RHEL that the new logical volume is to be formatted for swap space usage:
Then, you'll have to add an entry to /etc/fstab, so the system knows to re-use the swap space after a system reboot:# mkswap /dev/rootvg00/swaplv02 Setting up swapspace version 1, size = 8388604 KiB no label, UUID=c9be43f7-c473-45ae-ba13-c1e09af2d95e
Finally, activate the new swap space using the swapon command:# grep swap /etc/fstab /dev/mapper/rootvg00-swaplv00 swap swap defaults 0 0 /dev/mapper/rootvg00-swaplv01 swap swap defaults 0 0 /dev/mapper/rootvg00-swaplv02 swap swap defaults 0 0
# swapon -v /dev/rootvg00/swaplv02 swapon on /dev/rootvg00/swaplv02 swapon: /dev/mapper/rootvg00-swaplv02: found swap signature: version 1, page-size 4, same byte order swapon: /dev/mapper/rootvg00-swaplv02: pagesize=4096, swapsize=8589934592, devsize=8589934592To validate that the new swap space is available on the system, use the free command again, and you may also review /proc/swaps:
That's it; you're done!# free -m -t total used free shared buffers cached Mem: 129013 121344 7669 9 175 95575 -/+ buffers/cache: 25593 103420 Swap: 24575 8109 16466 Total: 153589 129453 24136 # cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 8388604 8303856 -1 /dev/dm-8 partition 8388604 0 -2 /dev/dm-9 partition 8388604 0 -3
If you found this useful, here's more on the same topic(s) in our blog:
- How to edit an image.data file to break a mirror
- LVM command history
- Automating microcode discovery
- Generate a random password
- How to read the /var/adm/ras/diag log file
UNIX Health Check delivers software to scan Linux and AIX systems for potential issues. Run our software on your system, and receive a report in just a few minutes. UNIX Health Check is an automated check list. It will report on perfomance, capacity, stability and security issues. It will alert on configurations that can be improved per best practices, or items that should be improved per audit guidelines. A report will be generated in the format you wish, and the report includes the issues discovered and information on how to solve the issues as well.
Interested in learning more?
Interested in learning more?