Not every Linux server I maintain needs to have a swap partition and to start swapping. For instance, the MySQL servers all have more than enough RAM on board to do their work. Yet, when a swap partition is enabled Linux starts swapping, which may degrade MySQL database performance…
Bash script to turn off Linux swap partition
An unwanted Linux swap partition can be the result of an automated and unattended Linux installation. Of course you can fiddle with the Linux kernel
swapiness settings, located in
/proc/sys/vm/swapiness and configurable in
/etc/sysctl.conf, but one can turn off the swap completely too.
Here’s a tiny bash script to disable Linux’ swap – for which we use the
swapoff command – and to comment out the swap partition in
# swapoff -a to disable swapping swapoff -a # sed to comment the swap partition in /etc/fstab sed -i.bak -r 's/(.+ swap .+)/#\1/' /etc/fstabCode language: Bash (bash)
Save this as
turn_swap_off.sh and execute as root:
sh /root/turn_swap_off.shCode language: Bash (bash)
A backup of the
/etc/fstab file is made just to be sure and to stay on the safe side.
Disable swappiness kernel parameter
Swappiness is a property for 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.
You manage swappiness with
sysctl, either to get its current value or to set a new swappiness value. For example:
# get current swappiness value sudo sysctl vm.swappiness # set a new swappiness value - for example 10 sudo sysctl vm.swappiness=10Code language: Bash (bash)
You can also edit the
/etc/sysctl.conf configuration file. Open the file
/etc/sysctl.conf with your text editor and change the value of the following entry
vm.swappiness to your suitable value (add the entry if it does not exist).
~$ sudo vi /etc/sysctl.conf ~$ grep swappiness /etc/sysctl.conf vm.swappiness=10Code language: Bash (bash)
Show Your Support
If you want to step in to help me cover the costs for running this website, that would be awesome. Just use this link to donate a cup of coffee ☕($10 USD or €10 EUR for example). And please share the love and help others make use of this website. Thank you very much! <3 ❤️