5.6. PostgreSQL 调整
PostgreSQL 是基于 SQL 的主要数据库,供 Satellite 在 Satellite 执行的各种任务中持久存储持久上下文。数据库通常会使用大量使用量,为 Satellite 提供其平稳正常工作所需的数据。这使得 PostgreSQL 成为大量使用的过程,如果 tuned 可能会对 Satellite 的整体操作响应有一定的好处。
PostgreSQL 作者建议在运行 PostgreSQL 的服务器中禁用 Transparent Hugepage。更多信息请参阅 第 4.3 节 “禁用透明巨页”。
您可以将一组调优应用到 PostgreSQL,以改进其响应时间,这将修改 postgresql.conf
文件。
流程
附加
/etc/foreman-installer/custom-hiera.yaml
以调整 PostgreSQL:postgresql::server::config_entries: max_connections: 1000 shared_buffers: 2GB work_mem: 8MB autovacuum_vacuum_cost_limit: 2000
postgresql::server::config_entries: max_connections: 1000 shared_buffers: 2GB work_mem: 8MB autovacuum_vacuum_cost_limit: 2000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行安装程序:
satellite-installer
# satellite-installer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以使用它来有效地调优 Satellite 实例,无论调优配置文件如何。
在以上调优配置中,我们更改了一组特定的键:
-
max_
CONNECTIONS :密钥定义 PostgreSQL 进程可接受的最大连接数。 -
shared_buffers
:共享缓冲区定义 PostgreSQL 中所有活动连接所使用的内存,以存储不同数据库操作的数据。根据在 Satellite 上执行操作的频率,这个最佳值将有 2 GiB 到总系统内存的 25%。 -
work_mem
: work_mem 是 PostgreSQL 按进程分配的内存,用于存储进程正在执行的操作的中间结果。将此值设置为 8 MB 应该大于 Satellite 上的大多数密集型操作。 -
autovacuum_vacuum_cost_limit
: 键定义 autovacuuming 操作的成本限制值,以清理数据库关系中的死组组。成本限制定义了可在进程在单个运行中处理的元组数。红帽建议根据 Satellite 在 PostgreSQL 服务器上推送的一般负载,将值设置为2000
,因为它适用于中、大、超大和大 配置集。
5.6.1. 基准测试原始 DB 性能 复制链接链接已复制到粘贴板!
要获得 Candlepin、foreman 和 Pulp 检查 postgres-size-report 脚本(在 satellite-support git 存储库中)的磁盘空间中顶级表大小的列表。
pgbench 工具(注意,您可能需要将 PostgreSQL 数据目录 /var/lib/pgsql
目录调整为 100 GiB 或运行基准基准的作用)可能会用于测量系统上的 PostgreSQL 性能。使用 dnf install postgresql-contrib
安装它。有关更多信息,请参阅 github.com/RedHatSatellite/satellite-support。
为 PostgreSQL 数据目录选择文件系统也可能重要。
- 切勿在生产系统上进行任何测试,且没有有效的备份。
- 在开始测试前,请查看数据库文件的意义。使用真正小的数据库进行测试不会产生任何有意义的结果。例如,如果 DB 只是 20 GiB,且缓冲区池为 32 GiB,它不会显示大量连接的问题,因为数据将被完全缓冲。