Swappiness
Swappiness is a Linux kernel parameter that controls the relative weight given to 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 causes the kernel to avoid swapping, a higher value causes the kernel to try to use swap space.
The default value is 60
, and for most desktop systems, setting it to 100 may affect the overall performance, whereas setting it lower (even 0) may decrease response latency.[1]
Value | Strategy |
---|---|
vm.swappiness = 0 | The kernel will swap only to avoid an out of memory condition, when free memory will be below vm.min_free_kbytes limit. See the "VM Sysctl documentation". |
vm.swappiness = 1 | Kernel version 3.5 and over, as well as Red Hat kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely. |
vm.swappiness = 10 | This value is sometimes recommended to improve performance when sufficient memory exists in a system. |
vm.swappiness = 60 | The default value. |
vm.swappiness = 100 | The kernel will swap aggressively. |
With kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over, it is likely better to use 1 for cases where 0 used to be optimal.[2]
To temporarily set the swappiness in Linux, write the desired value (e.g. 10
) to /proc/sys/vm/swappiness
using the following command, running as root user:
# Set the swappiness value as root echo 10 > /proc/sys/vm/swappiness # Alternatively, run this sysctl -w vm.swappiness=10 # Verify the change cat /proc/sys/vm/swappiness 10 # Alternatively, verify the change sysctl vm.swappiness vm.swappiness = 10
Permanent changes are made in /etc/sysctl.conf
via the following configuration line (inserted, if not present):
vm.swappiness = 10
References
- ↑ "Linux: Tuning Swappiness". kerneltrap.org. 2004-04-29. Archived from the original on 2012-07-05. Retrieved 2013-12-27.
- ↑ Tariq, Ovais (April 28, 2014). "OOM relation to vm.swappiness=0 in new kernel". Retrieved May 12, 2015.
External links
- van Riel, Rik. "Documentation for /proc/sys/vm/* in Github". Linus Torvald's kernel tree. Github. Retrieved 3 March 2013.
- Documentation for /proc/sys/vm/* kernel version 2.6.29 authoritative documentation
- "2.6 swapping behavior". May 5, 2004. Retrieved June 8, 2010.
- "Linux: Tuning Swappiness". April 29, 2004. Retrieved June 8, 2010.
- "Linux Swap Space". February 28, 2011. Retrieved May 8, 2015.