5.7. PostgreSQL Tuning


PostgreSQL 是一种基于 SQL 的主数据库,供卫星用于在卫星执行的各种任务之间存储持久上下文。数据库会看到大量使用量通常正在致力于为卫星提供所需的数据,以实现其顺利运行。这使得 PostgreSQL 大量使用的流程,如果 tuned 在 Satellite 的整体操作响应中可获得很多好处。

PostgreSQL 作者建议在运行 PostgreSQL 的服务器上禁用 Transparent Hugepage。更多信息请参阅 第 4.3 节 “禁用 Transparent Hugepage”

您可以将一组调优应用到 PostgreSQL,以改进其响应时间,这将修改 postgresql.conf 文件。

流程

  1. 附加 /etc/foreman-installer/custom-hiera.yaml 以调整 PostgreSQL:

    Copy to Clipboard Toggle word wrap
    postgresql::server::config_entries:
      max_connections: 1000
      shared_buffers: 2GB
      work_mem: 8MB
      autovacuum_vacuum_cost_limit: 2000

    您可以使用它来有效地微调卫星实例,无论调节配置文件是什么。

  2. 将您的更改应用到卫星服务器。更多信息请参阅 第 5.1 节 “应用配置”

在上面的调优配置中,我们更改了一组特定的键:

  • max_connections : 键定义运行 PostgreSQL 进程可接受的最大连接数。
  • shared_buffers :共享缓冲区定义供 PostgreSQL 中所有活动连接使用的内存,以存储不同数据库操作的数据。这个值的最佳值会因 Satellite 对操作的频率而不同,每个系统内存总量的 2 GiB 最多为 25%。
  • work_mem : work_mem 是每个进程为 PostgreSQL 分配的内存,用于存储由进程执行的操作的中间结果。将此值设置为 8 MB,对于 Satellite 上的大多数密集型操作来说,该数值应该足够多。
  • autovacuum_vacuum_cost_limit :键定义自动清空过程中清空操作的成本限制值,从而清理数据库关系中的死信。成本限制定义了可在单个运行过程中由流程处理的元数。红帽建议根据 Satellite 在 PostgreSQL 服务器进程 推送的一般负载将值设置为 2000,因为它适用于中、大、超大、和 extra-extra-large 配置集。

如需更多信息,请参阅 BZ1867311: Upgrade failed when checkpoint_segments postgres 参数配置

5.7.1. 基准测试原始 DB 性能

要获得在 Candlepin、Foreman 和 Pulp check 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,则连接数量不会显示大量连接的问题,因为数据将被完全缓冲。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.