There will be times where you need to increase the responsiveness of your server to prevent out of memory issues. Out of memory issues happen when an application running on your server starts consuming a large amount of memory. Swap is designed as virtual memory, which uses your harddrive to store data that cannot be held in RAM. This tutorial will show you how to create a swap file, which should work under Ubuntu, CentOS, and Debian. This tutorial is not meant for any Custom ISO, but it is possible to follow along.
To prevent any issues during this tutorial, you will need to run the following to verify that a swap space is currently not active:
After running that command you should see something similar to this output:
total used free shared buffers cached Mem: 1840 1614 226 15 36 1340 -/+ buffers/cache: 238 1602 Swap: 0 0 0
If you see a value of
0 in the
Swap section, then you can proceed to step 2.
Alternatively, you can run the following command to see if there is a configured swap file:
If you do not see any output from
swapon, then proceed to step 2.
You will need to choose a location for your file. In this tutorial, it will be stored at the root of the server. We will create a 2GB swap file by running the following command:
dd if=/dev/zero of=/swapfile count=2048 bs=1M
dd command will produce output in a similar format to:
2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB) copied, 10.5356 s, 204 MB/s
Next, verify that the file is located at the root of your Vultr VPS by running:
ls / | grep swapfile
Proceed if you see the
Swap files are not recognized automatically. We will need to tell the server how to format the file and enable it so it can be used as a valid swap file. As a security measure, update the swapfile permissions to only allow R/W for root and no other users. Run:
chmod 600 /swapfile
The permission change can be verified by running the following command:
ls -lh /swapfile
You will see a file display:
-rw------- 1 root root 2.0G Oct 2 18:47 /swapfile
Next, tell the server to setup the swap file by running:
After running it, you will see the following output:
Setting up swapspace version 1, size = 2097148 KiB no label, UUID=ff3fc469-9c4b-4913-b653-ec53d6460d0e
If everything is shown as above, you are now ready to move on to the next step.
Once your file is ready to be used as swap, you need to enable it by running:
You can verify that the swap file is active by running the
free command again.
free -m total used free shared buffers cached Mem: 1840 1754 86 16 23 1519 -/+ buffers/cache: 210 1630 Swap: 2047 0 2047
Swap shows something other than
0, then you have successfully setup swap.
By default, your server will not automatically enable this new swap file. To enable it on boot, you can update the
/etc/fstab file. Any text editor will suffice. In this example, I will be using
Add the following line at the end of the file:
/swapfile none swap sw 0 0
If you have an existing swap file and need to expand it:
Assuming your swapfile is named
/swapfile, disable it.
$ sudo swapoff /swapfile
Increase swap size. This will append 1024 blocks, 1 MB each (1 GB total) of zero bytes to the end of the existing swap file.
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc
Make the file a swap file.
$ sudo mkswap /swapfile
$ sudo swapon /swapfile