↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

pgCluu 5.0 发布

发布于 2026-10-22,HexaCluster
相关开源软件

马达加斯加,塔那那利佛,2026 年 10 月 20 日。

pgCluu

PostgreSQL 集群利用率分析

pgCluu 是一个用于全面审计 PostgreSQL 集群性能的 Perl 程序,由两部分组成:采集器通过 psql 和 sar 获取 PostgreSQL 服务器的统计信息,报告生成器则输出 HTML 报告和全部图表。

pgCluu 5.0 现已发布。这是一个大版本,增加了多项功能与报告,并修复了上一版本发布后报告的问题。原公告正文此处将版本号写为 6.0;本译文依据公告标题和项目 v5.0 发布说明校正为 5.0。

新功能:

  • 增加复制槽报告,数据来自 pg_replication_slots。
  • 增加 pg_hba_file_rules 的采集。
  • 等待事件报告仅展示占全部观测等待事件 0.1% 以上的事件。
  • 采集 pg_stat_io 的 I/O 统计信息(PG 16 及以上)。
  • 增加以下报告:
  • 各后端类型的 I/O 吞吐量。
  • 共享缓冲区的写入者与淘汰情况。
  • 缓冲区命中率与环形缓冲区。
  • I/O 延迟与大小。
  • WAL I/O。
  • 临时关系 I/O。
  • 异步 I/O(PG 18 及以上)。
  • 采集更多内核调优参数,移除 shmmax 和 shmall:
  • 此前未被 sysctl 过滤条件匹配到的 vm.dirty_expire_centisecs、vm.dirty_writeback_centisecs,以及其他所有 vm.dirty_* 参数。
  • vm.min_free_kbytes、vm.watermark_scale_factor、kernel.numa_balancing。
  • net.core.somaxconn、net.ipv4.ip_local_port_range、net.core.rmem_max、net.core.wmem_max、fs.file-max、fs.nr_open。
  • /sys/kernel/mm/transparent_hugepage/shmem_enabled:PostgreSQL 的共享内存属于匿名共享内存,因此影响 shared buffers 的是这个设置,而非 enabled。
  • 所有 CPU 的频率调节策略,而不再只采集 cpu0;另采集 cpuidle 驱动、intel_pstate 状态、能效偏好与 NUMA 节点数量。
  • 各块设备的 read_ahead_kb、nr_requests、max_sectors_kb、wbt_lat_usec。
  • 采集并报告 postmaster 进程的资源限制。pgcluu_collectd 现在会在 sysinfo.txt 的新 POSTMASTER 部分保存:
  • postmaster 的 PID:通过 checkpointer 的父进程确定,其 /proc 条目任何用户均可读取;PostgreSQL 10 之前则读取 postmaster.pid。
  • oom_score_adj,建议为 postmaster 设置为 -1000。
  • 打开文件数、进程数和锁定内存的软限制与硬限制。
  • cgroup 限制:cgroup v2(包括混合模式)中的 memory.max、memory.high、memory.swap.max、cpu.max、cpu.weight、io.max、pids.max,以及 memory.events 的 oom、oom_kill 计数;cgroup v1 中的内存和 CPU 配额限制。

pgcluu 与 pgcluu.cgi 会在系统信息的 Kernel 面板展示这些内容,对容量和 CPU 配额进行格式化,并为 oom_score_adj 与进程限制提供提示说明。

  • 增加内核压力停顿信息和内存事件报告。pgcluu_collectd 每次运行时,都会向 kernel_stats.csv 追加以下累计计数:
  • 主机的压力停顿信息 PSI(/proc/pressure,Linux 内核 4.20 及以上),以及 postmaster 所属 cgroup v2 的 CPU、内存和 I/O 压力。
  • postmaster 所属 cgroup 的内存事件,即 memory.events 中的 high、max、oom、oom_kill。
  • sar 没有报告的 /proc/vmstat 计数:直接内存回收(allocstall)、内存规整、透明大页分配与回退、OOM 杀进程、NUMA 分配及页缓存再次缺页载入。

pgcluu 与 pgcluu.cgi 的 System 菜单新增两个页面:

  • Pressure stall information:展示主机和 PostgreSQL cgroup 中,部分任务或所有任务因 CPU、内存或 I/O 等待而停顿的时间比例。
  • Kernel memory events:展示分配停顿、内存规整、透明大页、OOM 杀进程、cgroup 内存事件、页缓存再次缺页载入和 NUMA 分配。

完整变更、问题修复与致谢名单见 ChangeLog。

关于 pgCluu

本项目旨在提供完整的 PostgreSQL 审计工具,让用户无需额外依赖即可方便地审计本地或远程服务器。

即使只有 sar 输出文件,也可以用 pgCluu 绘制系统利用率图表。

致谢

pgCluu 是我在 Dalibo 与 HexaCluster 工作期间创建的一组原创工具,按 PostgreSQL 许可证发布。

pgCluu 由 Gilles Darold 创建并维护。欢迎通过 GitHub 提交想法、功能需求或补丁,共同改进工具。

链接

  • 示例报告:http://pgcluu.darold.net/example/index.html
  • 网站:http://pgcluu.darold.net/
  • 下载:https://github.com/darold/pgcluu/releases
  • 开发:https://github.com/darold/pgcluu
  • 文档:https://github.com/darold/pgcluu/blob/master/README

原文