min_free_kbytes Setting

This topic details how to update the min_free_kbytes setting so that it is within the range supported by Vertica. The installer reports this issue with the identifier: S0050 if the setting is too low, or S0051 if the setting is too high.

The vm.min_free_kbytes setting configures the page reclaim thresholds. When this number is increased the system starts reclaiming memory earlier, when its lowered it starts reclaiming memory later. The default min_free_kbytes is calculated at boot time based on the number of pages of physical RAM available on the system.

The setting must be the greater of:

  • The default value configured by the system, or
  • 4096, or
  • determine the value from running the command below.

The installer automatically configures the correct setting if the default value does not meet system requirements. If there is an issue setting this value, or you have used the --no-system-configuration argument to the installer and the current setting is incorrect, then the installer reports this as an issue.

All Systems

To manually set min_free_kbytes:

  1. Determine the current/default setting with the following command:
  2. /etc/sysctl vm.min_free_kbytes
  3. If the result of the previous command is No such file or directory or the default value is less than 4096, then run the command below:
  4. memtot=`grep MemTotal /proc/meminfo | awk '{printf "%.0f",$2}'`
    echo "scale=0;sqrt ($memtot*16)" | bc
  5. Edit or add the current value of vm.min_free_kbytes in /etc/sysctl.conf with the value from the output of the previous command.
  6. # The min_free_kbytes setting

    vm.min_free_kbytes=5572

  7. Run sysctl -p to apply the changes in sysctl.conf immediately.
  8. These steps will need to be replicated for each node in the cluster.