Linux Swap and Swapfile

From WikiMLT

Add/​​​Remove Swap­file Short Guide

Swap On

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo nano /etc/fstab
/swapfile swap swap defaults 0 0

Swap Off

sudo swapoff -a     # sudo swapoff /swapfile
sudo rm -f /swapfile
sudo nano /etc/fstab
#/swapfile swap swap defaults 0 0

Check the swap and its us­age

sudo swapon --show
sudo free -h

Swap On/​​​Off Scripts

swap-on.sh
#!/bin/bash

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo sed 's_^#/swapfile_/swapfile_' /etc/fstab -i

echo
sudo swapon --show
echo
sudo free -h
swap-off.sh
#!/bin/bash

sudo swapoff /swapfile
sudo rm -f /swapfile
sudo sed 's_^/swapfile_#/swapfile_' /etc/fstab -i

echo
sudo swapon --show
echo
sudo free -h

Ad­just­ing the Swap­pi­ness Val­ue

Swap­pi­ness is a Lin­ux ker­nel prop­er­ty that de­fines how of­ten the sys­tem will use the swap space. Swap­pi­ness can have a val­ue be­tween 0 and 100. A low val­ue will make the ker­nel to try to avoid swap­ping when­ev­er pos­si­ble while a high­er val­ue will make the ker­nel to use the swap space more ag­gres­sive­ly.

The de­fault swap­pi­ness val­ue is 60. You can check the cur­rent swap­pi­ness val­ue by typ­ing the fol­low­ing com­mand:

cat /proc/sys/vm/swappiness
60

While the swap­pi­ness val­ue of 60 is OK for Desk­tops, for pro­duc­tion servers you may need to set a low­er val­ue. For ex­am­ple, to set the swap­pi­ness val­ue to 10, type:

sudo sysctl vm.swappiness=10

To make this pa­ra­me­ter per­sis­tent across re­boots ap­pend the fol­low­ing line to the /etc/sysctl.conf file:

sudo nano /etc/sysctl.conf
vm.swappiness=10

The op­ti­mal swap­pi­ness val­ue de­pends on your sys­tem work­load and how the mem­o­ry is be­ing used. You should ad­just this pa­ra­me­ter in small in­cre­ments to find an op­ti­mal val­ue.

Ref­er­ences