In CentOS 6 swap space or simply swap is something that is used by the operating system when the system requires more memory that the physical memory installed on the server. In that case, the operating system is using parts from the hard drives as if they were physical memory.
This sounds very good, but the only downside of this is that the hard drives are significantly slower than the RAM memory, so this will decrease the server performance in general. However, having enough memory available is very important for our server to be stable and run smooth so we should always have swap space available on our Linux server.
Before we add more SWAP space, we need to create the swap file. We will use the dd
command to create the swap file. dd
is built in command in CentOS whose primary purpose is to convert and copy a file .
In this case if
(input file) is /dev/zero
and of
(output file) is the destination where we want to save the file. Basically, we are going to create 1GB file that will consist of zeros only and use that as a swap later.
# dd if=/dev/zero of=/swapfile bs=1M count=1024
Next, we need to set up file so it is can be used as swap space. We will use mkswap
command for that:
# mkswap /swapfile
The swap file must be owned by root and have proper permissions:
#chown root:root /swapfile
#chmod 0600 /swapfile
Once this is done, the only thing left is to activate and start using the swap space.
# swapon /swapfile
That’s it. We got another 1GB of swap space. If we wont to keep the space active after system reboot, we need to add an entry into /etc/fstab
file. Open /etc/fstab
file using your favorite text editor and add the following entry:
/swapfile swap swap defaults 0 0
Save and close the file. Next time Linux comes up after reboot, it enables the new swap file for you automatically.
We can verify that the swap was added by executing the command, the output should look like the following:
# free -m
total used free shared buffers cached
Mem: 2026 990 1036 0 129 620
-/+ buffers/cache: 240 1786
Swap: 1024 0 1024
In order to determine how often swap file is used (compared to the RAM usage) system uses system property that is called swappiness. Swappiness is a property of the Linux kernel that changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache. Swappiness can be set to values between 0 and 100 inclusive.
A low value means the kernel will try to avoid swapping as much as possible where a higher value instead will make the kernel aggressively try to use swap space. The default value is 60. We can set the swappiness with the following command:
sysctl vm.swappiness=10
Now you have swap file on your system, which means you have more memory for the system to work with. This will make your system more stable at the cost of HDD space used by the swap file.