1 What is Swap
Space?
·
2 Recommended
Swap Space for CentOS 6
·
3 Identifying
Current Swap Space Usage
·
4 Adding a Swap
File to a CentOS 6 System
·
5 Adding Swap to
a CentOS 6 LVM Swap Volume
·
6 Adding Swap
Space to the Volume Group
Computer
systems have a finite amount of physical memory that is made available to the
operating system. When the operating system begins to approach the limit of the
available memory it frees up space by writing memory pages to disk. When any of
those pages are required by the operating system they are subsequently read
back into memory. The area of the disk allocated for this task is referred to
as swap space.
Recommended Swap Space for CentOS 6
The
amount of swap recommended for CentOS 6 depends on a number of factors
including the amount of memory in the system and the workload imposed on that
memory. The current guidelines for CentOS 6 swap space are as follows:
§
4GB of RAM requires a minimum of 2GB of swap space
§
4GB to 16GB RAM requires a minimum of 4GB of swap space
§
16GB to 64GB of RAM requires a minimum of 8GB of swap space
§
64GB to 256GB of RAM requires a minimum of 16GB of swap space
The
current amount of swap used by a CentOS 6 system may be identified in a number
of ways. One option is to cat the /proc/swaps file:
# cat /proc/swaps
Filename Type Size Used
Priority
/dev/dm-1 partition 2064376 0 -1
Alternatively,
use the swapon command:
Filename Type Size Used
Priority
/dev/dm-1 partition 2064376 0 -1
Finally,
the free command may also be used:
# free
total used free
shared buffers cached
Mem: 1021488 615348
406140 0 199596
160312
-/+ buffers/cache:
255440 766048
Swap: 2064376 0
2064376
Additional
swap may be added to the system by creating a file and assigning it as swap.
Begin by creating the swap file using the dd command (the size can be changed
by adjusting the count= variable; the following creates a 131MB file):
# dd if=/dev/zero of=/newswap bs=1024 count=128000
128000+0 records in
128000+0 records out
131072000 bytes (131 MB) copied, 1.7639 seconds, 74.3 MB/s
Configure
the file as swap:
# mkswap /newswap
mkswap: /newswap: warning: don't erase bootbits sectors
on whole disk. Use
-f to force.
Setting up swapspace version 1, size = 127996 KiB
no label, UUID=91588fb6-ac01-47f6-bb42-064c1c7c4599
Add
the swap file to the system in real-time:
# swapon /newswap
Finally,
modify the /etc/fstab file to automatically add the new swap at system boot
time by adding the following line:
/newswap swap swap
defaults 0 0
By
default, CentOS 6 configures swap space using Logical Volume Management (LVM).
An alternative to adding swap via file, therefore, is to extend the logical
volume used for the swap.
The
first step is to identify the current amount of swap available and the volume
group and logical volume used for the swap space (for more information on LVM,
refer to the chapter entitled Adding a New Disk to a CentOS 6 Volume Group and
Logical Volume):
# lvdisplay
--- Logical volume ---
LV Name /dev/vg_centos6/lv_root
VG Name vg_centos6
LV UUID
nU70n0-scyi-xp2S-1CNq-GUa1-4Vad-gQKIOO
LV Write Access read/write
LV Status available
# open 1
LV Size 23.54 GiB
Current LE 6026
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/vg_centos6/lv_swap
VG Name vg_centos6
LV UUID
5uVonb-SCk2-bedt-4Oj3-LGpq-TpsA-qyCGEl
LV Write Access read/write
LV Status available
# open 1
LV Size 1.97 GiB
Current LE 504
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
Clearly
the swap resides on logical volume lv_swap which in part of volume group
vg_CentOS6. The next step is to verify if there is any space available on the
volume group that can be allocated to swap volume:
# vgs
VG #PV #LV #SN Attr VSize
VFree
vg_centos6 2
2 0 wz--n- 47.50g 22.00g
If
the amount of space available is sufficient to meet additional swap
requirements, turn off the swap and extend the swap logical volume to use the
additional space:
# swapoff /dev/vg_centos6/lv_swap
# lvextend -L +3GB /dev/vg_CentOS6/lv_swap
Extending logical volume
lv_swap to 4.97 GiB
Logical volume lv_swap
successfully resized
Next,
reformat the swap volume and turn the swap back on:
# mkswap /dev/vg_centos6/lv_swap
mkswap: /dev/vg_centos6/lv_swap: warning: don't erase bootbits
sectors
on whole disk. Use
-f to force.
Setting up swapspace version 1, size = 5210108 KiB
no label, UUID=acd810b6-6522-43c8-b16d-a3f365288b15
# swapon /dev/vg_centos6/lv_swap
Having
made the changes, check that the swap space as increased:
# swapon -s
Filename Type Size Used
Priority
/dev/dm-1 partition 5210104 0 -1
In
the above section we extended the swap logical volume to use space that was
already available in the volume group. If no space is available in the volume
group then it will need to be added before the swap can be extended. Begin by
checking the status of the volume group:
# vgs
VG #PV #LV #SN Attr VSize VFree
vg_centos6 1
2 0 wz--n- 8.79g 0
The
above output indicates that no space is available within the volume group.
Suppose, however, that we have a requirement to add 2GB to the swap on the
system. Clearly, this will require the addition of more space to the volume
group. For the purposes of this example it will be assumed that a disk
partition that is 2GB is size and represented by /dev/sdb is available for
addition to the volume group. The first step is to turn this partition into a
physical volume:
# pvcreate /dev/sdb
Physical volume
"/dev/sdb" successfully created
Next,
the volume group needs to be extended to use this additional physical volume:
# vgextend vg_centos6 /dev/sdb
Volume group
"vg_CentOS6" successfully extended
At
this point the vgs command should report the addition of the 2GB of space to
the volume group:
# vgs
VG #PV #LV #SN Attr VSize
VFree
vg_centos6 2
2 0 wz--n- 10.78g 2.00g
Now
that the additional space is available in the volume group, the swap logical
volume may be extended to utilize the space. First, turn off the swap:
# swapoff /dev/vg_centos6/lv_swap
Next,
extend the logical volume to use the new space:
# lvextend -L+2GB /dev/vg_centos6/lv_swap
Extending logical volume
lv_swap to 3.97 GiB
Re-create
the swap on the logical volume:
# mkswap
/dev/vg_centos6/lv_swap
mkswap: /dev/vg_centos6/lv_swap: warning: don't erase bootbits
sectors
on whole disk. Use
-f to force.
Setting up swapspace version 1, size = 2064380 KiB
no label, UUID=1bb0e260-7940-4070-929c-91518a7be384
Next,
turn swap back on:
# swapon /dev/vg_centos6/lv_swap
Finally,
use the swapon –s command to verify the addition of the swap space to the
system:
# swapon -s
Filename Type Size Used
Priority
/dev/dm-1
partition 2064376 0 -1