If I configure the swappiness value to another, from ex.: 60 to 0, then I always need to reboot the machine to the changes to take effect? Even when modifying with:
sysctl -w vm.swappiness=0
Everything is well explained in the Wikipedia page you gave.
# Set the swappiness value as root echo 10 > /proc/sys/vm/swappiness # Alternatively, run this as a non-root user # This does the same as the previous command sudo sysctl -w vm.swappiness=10 # Verify the change cat /proc/sys/vm/swappiness 10
At this point, the system will manage the swap like you just configured it, BUT if you reboot NOW, your change will be forgotten and the system will work with the default value (assuming 60, meaning than it will start to swap at 40% occupation of RAM).
You have to add the line below in
/etc/sysctl.conf to keep your change permanently:
vm.swappiness = 10
Hope it’s more clear for you now!
need to reboot the machine to the changes to take effect?
The opposite, in fact -- rebooting will reset the swappiness to its default value. To make it persist across reboots, you need to include a directive in a boot script or use the method recommended in the wikipedia article by adding:
vm.swappiness = ??
/etc/sysctl.conf (or an
/etc/sysctl.d file), where
?? is the value you want to use. Note that just adding this will not cause any change at the time.
The accepted answer is correct, but it's recommended to use a separate "sysctl" config file so that you don't accidentally overwrite other settings (which might happen if you overwrite the global "sysctl.conf").
# echo 'vm.swappiness=10' >/etc/sysctl.d/swappiness.conf
Those who've already modified the global config file "/etc/sysctl.conf" might want to remove lines defining this "swappiness" value from that file. You could use this command to remove these lines from the global config file (keeping comments):
# sed -i '/^vm.swappiness=/d' /etc/sysctl.conf
Now, to apply the new value, tell
sysctl to use it:
# sysctl -p /etc/sysctl.d/swappiness.conf
Or apply all settings, including swappiness:
# sysctl -p /etc/sysctl.d/*
# sysctl vm.swappiness vm.swappiness = 10
I found that on a CentOS machine, the
vm.swappiness was being set in
Determine where the default is being set by looking through
tuned configuration files:
sudo grep -R swap /usr/lib/tuned | grep swappiness
After updating the default, current swappiness can still be set without rebooting:
sudo sysctl vm.swappiness=10
and tested by: