使用 RPM 设置 AlloyDB Omni 以用于生产

选择文档版本:

本页面介绍了将 AlloyDB Omni 用于生产工作负载时的常用设置。

启用大内存页

与 PostgreSQL 一样,AlloyDB Omni 也支持使用大内存页。这需要您的机器启用大内存页,并且您还需要启用数据库设置 huge_pages

如需在 Linux 机器上启用大内存页,请运行以下命令:

sudo /usr/lib/postgresql/MAJOR_VERSION/bin/alloydbomniMAJOR_VERSION-setup-host
将以下代码行添加到 postgresql.conf 中以启用大内存页:

   huge_pages=on

启用交换

在操作系统中进行交换可在随机存取存储器 (RAM) 和硬盘之间移动非活跃内存页以便为活跃进程释放 RAM 空间,从而扩展可用物理内存。AlloyDB Omni 在处于高负载下且需要额外内存时会使用交换。

如需检查系统上已启用的交换空间量,请运行以下命令:

   cat /proc/meminfo | grep SwapTotal

输出类似于以下内容:

   SwapTotal:      165748732 kB

如需在操作系统上启用交换(如果输出值为 0),请参阅以下内容:

  • Red Hat Enterprise Linux 9

  • 启用核心转储

    如果 AlloyDB Omni 遇到不可恢复的错误并崩溃,则获取核心转储以进行分析会很有帮助。核心转储是 AlloyDB Omni 进程在崩溃时的内存快照。

    如需设置核心转储,请按如下所示设置 kernel.core_pattern

    1. 使用 sysctl 命令配置运行时内核参数。
    2. 如需立即设置 kernel.core_pattern,请使用以下命令:

      sysctl -w kernel.core_pattern="CORE_PATTERN"

      CORE_PATTERN 替换为核心文件名格式,例如“%e-%t.core”。

      如需详细了解核心文件名模式,请参阅 如何设置进程核心文件名

      systemd-coredump 处理程序可用于进一步 配置核心转储设置。该工具默认安装在 RHEL 中。

    为确保 AlloyDB Omni 进程可以生成完整核心转储且没有任何大小限制,请通过将 LimitCORE=infinity 添加到 [Service] 部分的 alloydbomniMAJOR_VERSION.service 文件来配置 systemd 服务。

    1. /etc/systemd/system/alloydbomniMAJOR_VERSION.service.d/override.conf 中为 alloydbomniMAJOR_VERSION.service 创建替换文件。将以下内容添加到 override.conf 文件中:

        [Service]
        LimitCORE=infinity
      
    2. 重新加载 systemd 守护进程以应用更改:

        sudo systemctl daemon-reload
    3. 重启 AlloyDB Omni 服务:

        sudo systemctl restart alloydb-omniMAJOR_VERSION

    启用内部日志记录

    除了常规的 PostgreSQL 日志之外,AlloyDB Omni 还提供了更多消息。 由于这些消息具有技术性,因此旨在供 AlloyDB for PostgreSQL 支持团队使用。不过,额外的信息有助于调试数据库问题。

    如需启用内部日志记录,请完成以下步骤:

    1. 将数据库参数 enable_alloydb_internal_log 设置为 on

      ALTER SYSTEM SET enable_alloydb_internal_log=on;
      

      如需详细了解如何修改 AlloyDB Omni 设置,请参阅 配置 AlloyDB Omni 数据库参数

    2. 重启 AlloyDB Omni 服务:

       sudo systemctl restart alloydb-omniMAJOR_VERSION

    如需进一步自定义内部日志记录(例如配置日志文件名和轮替 政策),请使用 PostgreSQL 参数

    例如,log_directory 参数指定用于保存日志文件的目录,而 log_filename 参数定义单个日志文件的名称。

    AlloyDB Omni 会按如下所示组合 log_directorylog_filename 参数并保存内部日志:

    LOG_DIRECTORY/LOG_FILENAME.internal
    

    设置 systemd 单元以自动运行操作

    如果您在专用服务器上运行 AlloyDB Omni,则可能需要将某些操作配置为在服务器启动时自动启动。 一种方法是通过 systemd 单元来实现。

    例如,以下步骤会配置 systemd,以便在服务器每次启动时自动启用大内存页。

    /etc/systemd/system/alloydb-setup-env.service 中创建一个文件:

       [Unit]
       Description=Setup huge pages for AlloyDB Omni
    
       [Service]
       Type=oneshot
    
       ExecStart=/usr/lib/postgresql/MAJOR_VERSION/bin/alloydbomniMAJOR_VERSION-setup-host
    
       [Install]
       WantedBy=multi-user.target
    

    按如下所示启用服务:

       sudo systemctl enable alloydb-setup-env.service

    后续步骤