启用或禁用透明大页

可以修改透明大页以满足 Vertica 配置要求:

  • 对于 Red Hat 7/CentOS 7 和 Amazon Linux 2.0,必须启用透明大页。安装程序将以标识符S0312 报告不支持的调度程序问题。

  • 对于 Red Hat 8/CentOS 8 和 SUSE 15.1,Vertica 按工作负载提供建议设置以优化系统性能。

  • 对于其他所有系统,必须禁用透明大页或将其设为 madvise。安装程序将以标识符S0310 报告不支持的调度程序问题。

对 Red Hat 8/CentOS 8 和 SUSE 15.1 按工作负载建议设置

Vertica 按工作负载建议透明大页设置以优化性能。下表列出了针对主要运行并发查询(例如短时间运行的仪表板查询)或顺序 SELECT 或 load (COPY) 查询的系统提出的建议:

有关按工作负载优化系统性能的其他设置,请参阅启用或禁用 defrag

在 Red Hat 7/8、CentOS 7/8、SUSE 15.1 和 Amazon Linux 2.0 上启用透明大页

确定是否启用了透明大页。为此,请运行以下命令。

cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

括号内返回的设置是当前设置。

对于不支持 /etc/rc.local 的系统,请使用在达到目标运行级别后运行的等效启动脚本。例如,SuSE 使用 /etc/init.d/after.local

可通过编辑 /etc/rc.local 并添加以下脚本来启用透明大页:

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    echo always > /sys/kernel/mm/transparent_hugepage/enabled
fi

必须重新引导系统以使设置生效,或以 root 用户的身份运行以下 echo 行以继续安装而不重新引导:

# echo always > /sys/kernel/mm/transparent_hugepage/enabled

如果您使用的是 Red Hat 7.0 或 CentOS 7.0 或更高版本,请以 root 或 sudo 身份运行以下命令:

$ chmod +x /etc/rc.d/rc.local

在其他系统上禁用透明大页

为确定是否已启用透明大页,请运行以下命令。

cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

括号内返回的设置是当前设置。根据平台操作系统,可能不会显示 madvise 设置。

可采用两种方法之一禁用透明大页:

  • 编辑引导装载程序(例如 /etc/grub.conf)。通常情况下,可以将以下内容添加到内核行的末尾。但在编辑引导装载程序配置之前,请查阅系统文档。

    transparent_hugepage=never
    
  • 编辑 /etc/rc.local(在支持 rc.local 的系统上)并添加以下脚本。

    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
       echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    

对于不支持 /etc/rc.local 的系统,请使用在达到目标运行级别后运行的等效启动脚本。例如,SuSE 使用 /etc/init.d/after.local

不论选择哪种方法,都必须重新引导系统以使设置生效,或运行以下两个 echo 行以继续安装而不重新引导:


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