Creating Swap Space on Ubuntu 18.04
Of course, we do not recommend you use swap space as a replacement to physical memory, especially on cloud hosting. If you are continuously eating into swap space, you should upgrade your physical memory. Swap should really only be a fall back in case memory usage peaks abnormally.
First check if the system has any swap configured.
swapon --showIf the output is blank, there is no swap configured so we can continue with this guide.
1. Create a Swap File
We will use the fallocate program to create a swap file. Best practice is to create a swap file double the amount of your RAM. If you have 1024MB of RAM, create a 2GB swap file.
sudo fallocate -l 2G /swapfileNow check if the file was created.
ls -lh /swapfileIf it was created correctly, you should see something like:
-rw-r--r-- 1 root root 2.0G Aug 3 18:59 /swapfile2. Configure Swap File
Make the swap file only accessible to root.
sudo chmod 600 /swapfileMark the file as a swap file.
sudo mkswap /swapfileIf it was successful, you should see something like
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=00aafaee-51c9-46b3-a0fc-8240c134048eFinally we will tell the system to start using our new swap file,
sudo swapon /swapfileTo verify that the swap is now available type:
sudo swapon --showResult:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2We can also run the following to see our new swap file alongside physical memory
free -hResult:
total used free shared buff/cache available
Mem: 985M 418M 104M 26M 462M 392M
Swap: 2.0G 0B 2.0G3. Make it Persistent
This swap will only last until next reboot. In order to make it permanent, we will add it to the /etc/fstab file.
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab4. Some Final Tweaks
For a server, you should change the swappiness value to 10.
sudo sysctl vm.swappiness=10Now change the vfs_cache_pressure value to 50.
sudo sysctl vm.vfs_cache_pressure=50To make these two settings persist after next reboot, edit the following file:
sudo nano /etc/sysctl.confAdd this to the bottom.
/etc/sysctl.conf
vm.swappiness=10
vm.vfs_cache_pressure=50Save file and exit. (Press CTRL + X, press Y and then press ENTER).
If you can, reboot the server with sudo reboot and run sudo swapon --show just to make sure the swap space was created automatically on startup.
A useful way to keep an eye on your swap usage and system resources is to run htop.
Last updated
Was this helpful?