Version:

Configuration Best PracticesΒΆ

This section describes the best practices for an optimal Kinetica installation. After modifying any parameter values, for the modification to take effect, it is recommended to reboot the system.

  • System-wide resource limits

    Linux by default imposes certain limits on the use of system-wide resources. Kinetica recommends (as a safety measure to change) these per-user limits from the defaults to higher values to prevent the system from ever hitting the limits. This can be done either by editing the /etc/security/limits.conf or by running the linux ulimit command which will make the be effective only for the remainder of the session.

    • File descriptors limit

      Kinetica does not require a large number of simultaneously open files during operation, nevertheless it is recommended to set the soft limit to 16384 and the hard limit to 63536. This can be done either the linux ulimit command or by directy updating (or adding) the following entries in the file /etc/security/limits.conf

      gpudb soft nofile 16384
      gpudb hard nofile 63536
      
    • Process limit

      Kinetica does not require a large number of simultaneously open files during operation, nevertheless it is recommended to set both the hard and the soft limits to 16384. This can be done either the linux ulimit command or by directy updating (or adding) the following entries in the file /etc/security/limits.conf

      gpudb soft nproc 16384
      gpudb hard nproc 16384
      
  • CPU performance throttling

    For optimal performance the power scaling setting should be set to performance in the file /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor to disable the on-demand CPU throttling.


  • Kernel tuning parameters

    The following parameters to the Linux Virtual memory subsystem should be tweaked for optimal performance. Unless specified, these values are configured in the file /etc/sysctl.conf . Login with root privileges to modify (or add) the values and then reboot the system for the value to take effect.

    • System memory Swapping

      The swappiness value (which controls how aggressively the system swaps memory pages) should be set to 10 or less in the sysctl.conf

      vm.swappiness = 10

    • Zone reclaim mode

      The Zone reclaim mode (which controls the approach taken by the system taken to reclaim the memory when a zone runs out of memory) should be set to 7 in the sysctl.conf

      vm.zone_reclaim_mode = 7

    • vfs_cache_pressure

      This parameter controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects and it is recommended to set this value to 200 or greater

      vm.vfs_cache_pressure = 200

    • Transparent hugepages

      Disable transparent hugepages for better performance. This value is specified in file /sys/kernel/mm/transparent_hugepage/enabled and should be set to 'never' as follows

      echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled