本页面介绍了将 AlloyDB Omni 用于生产工作负载时的常用设置。
启用大内存页
与 PostgreSQL 一样,AlloyDB Omni 也支持使用大内存页。这需要您的机器启用大内存页,并且您还需要启用数据库设置 huge_pages
。
运行提供的脚本以在您的机器上启用大内存页:
Docker
docker run --rm --privileged google/alloydbomni setup-host
Docker
docker run --rm --privileged google/alloydbomni setup-host
Podman
podman run --rm --privileged google/alloydbomni setup-host
Podman
podman run --rm --privileged google/alloydbomni setup-host
将以下代码行添加到
postgresql.conf
中以启用大内存页:huge_pages=on
启用交换
在操作系统中进行交换可在随机存取存储器 (RAM) 和硬盘之间移动非活跃内存页以便为活跃进程释放 RAM 空间,从而扩展可用物理内存。AlloyDB Omni 在处于高负载下且需要额外内存时会使用交换。
如需检查系统上已启用的交换空间量,请运行以下命令:
cat /proc/meminfo | grep SwapTotal
输出类似于以下内容:
SwapTotal: 165748732 kB
如需在操作系统上启用交换(如果输出值为 0
),请参阅以下内容:
启用核心转储
如果 AlloyDB Omni 遇到不可恢复的错误并崩溃,那么获取核心转储以进行分析会很有帮助。核心转储是 AlloyDB Omni 进程在崩溃时的内存快照。
如需设置核心转储,请按以下方式设置 kernel.core_pattern
:
- 使用
sysctl
命令配置运行时内核参数。 如需立即设置
kernel.core_pattern
,请使用以下内容:sysctl -w kernel.core_pattern="CORE_PATTERN"
将
CORE_PATTERN
替换为核心文件名模式,例如“%e-%t.core”。如需详细了解核心文件名模式,请参阅如何设置进程核心文件名。
systemd-coredump 处理程序可用于进一步配置核心转储设置。该工具默认安装在 RHEL 中。在 Debian 和 Ubuntu 系统上,运行
sudo apt install coredumpctl
可安装该工具。启动 AlloyDB Omni 时,请确保在
docker run
命令中传递--ulimit=core:-1:-1
参数:Docker
docker run --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ --ulimit=core:-1:-1 \ -p HOST_PORT:5432 -d google/alloydbomni
Docker
docker run --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ --ulimit=core:-1:-1 \ -p HOST_PORT:5432 -d google/alloydbomni
Podman
podman run --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ --ulimit=core:-1:-1 \ -p HOST_PORT:5432 -d google/alloydbomni
Podman
podman run --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ --ulimit=core:-1:-1 \ -p HOST_PORT:5432 -d google/alloydbomni
替换以下内容:
CONTAINER_NAME
:新的 AlloyDB Omni 容器的名称,例如my-omni-1
。NEW_PASSWORD
:在创建密码后向新容器的postgres
用户分配的密码。
启用内部日志记录
除了常规的 PostgreSQL 日志之外,AlloyDB Omni 还提供了更多消息。由于这些消息具有技术性,因此旨在供 AlloyDB for PostgreSQL 支持团队使用。不过,额外的信息有助于调试数据库问题。
如需启用内部日志记录,请完成以下步骤:
将数据库参数
enable_alloydb_internal_log
设置为on
:ALTER SYSTEM SET enable_alloydb_internal_log=on;
如需详细了解如何修改 AlloyDB Omni 设置,请参阅配置 AlloyDB Omni 数据库参数。
重启以应用更改:
Docker
docker restart CONTAINER_NAME
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
如需进一步自定义内部日志记录(例如配置日志文件名称和轮替政策),请使用 PostgreSQL 参数。
例如,log_directory
参数指定用于保存日志文件的目录,而 log_filename
参数定义各个日志文件的名称。
AlloyDB Omni 会组合 log_directory
和 log_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/bin/docker run --rm --privileged google/alloydbomni setup-host [Install] WantedBy=multi-user.target
按以下方式启用服务:
sudo systemctl enable alloydb-setup-env.service