Setting the vm.swappiness Linux Kernel Parameter
The Linux kernel parameter, vm.swappiness
, is a value from 0-100 that
controls the swapping of application data (as anonymous pages) from physical memory to virtual
memory on disk. You can set the value of the vm.swappiness
parameter for
minimum swapping.
The higher the parameter value, the more aggressively inactive processes are swapped out from physical memory. The lower the value, the less they are swapped, forcing filesystem buffers to be emptied.
On most systems, vm.swappiness
is set to 60 by default. This is not
suitable for Hadoop clusters because processes are sometimes swapped even when enough memory
is available. This can cause lengthy garbage collection pauses for important system daemons,
affecting stability and performance.
Cloudera recommends that you set vm.swappiness
to a value between 1 and 10,
preferably 1, for minimum swapping on systems where the RHEL kernel is 2.6.32-642.el6
or higher.
vm.swappiness
, run:
cat /proc/sys/vm/swappiness
vm.swappiness
to 1
, run:
sudo sysctl -w vm.swappiness=1
vm.swappiness
value after
reboot:
echo 'vm.swappiness=1' > /etc/sysctl.d/90-cloudera-swappiness.conf
Swap space allocation
Cloudera recommends following the guidelines provided by your operating system vendor to configure the swap space on each host. If your vendor recommends a swap space range, then use the lowest recommended value.