min_free_kbytes 设置

本主题详细说明如何更新 min_free_kbytes 设置,使其在 Vertica 支持的范围以内。安装程序将以标识符S0050(如果设置的值过低)或 S0051(如果设置的值过高)报告此问题。

vm.min_free_kbytes 设置将配置页面回收阈值。增大此数字时,系统会更早开始回收内存,减小此数字时,系统会更晚开始回收内存。min_free_kbytes 的默认值是在启动时基于系统中可用的物理 RAM 页数进行计算。

该设置必须是以下选项中的最大值:

  • 系统配置的默认值

  • 4096

  • 运行以下命令的结果:

    $ memtot=`grep MemTotal /proc/meminfo | awk '{printf "%.0f",$2}'`
    $ echo "scale=0;sqrt ($memtot*16)" | bc
    

如果默认值不符合系统要求,安装程序会自动配置正确的设置。如果设置此值时出现问题,或者已在安装程序中使用 ‑‑no‑system‑configuration 实参且当前设置不正确,安装程序将会报告此问题。

所有系统

要手动设置 min_free_kbytes:

  1. 使用以下命令确定当前/默认设置:

    $ sysctl vm.min_free_kbytes
    
  2. 如果前一条命令的结果是 No such file or directory,或默认值小于 4096,则运行以下命令确定正确的值:

    $ memtot=`grep MemTotal /proc/meminfo | awk '{printf "%.0f",$2}'`
    $ echo "scale=0;sqrt ($memtot*16)" | bc
    
  3. 使用上一条命令输出中的值,在 /etc/sysctl.conf 中编辑或添加 vm.min_free_kbytes 的当前值。

    # The min_free_kbytes setting
    vm.min_free_kbytes=16132
    
  4. 运行 sysctl -p 立即在 sysctl.conf 中应用更改。