system_stats

PostgreSQL 的系统统计函数

概览

扩展包名版本分类许可证语言
system_stats3.2STATPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
6420system_stats-
相关扩展pgnodemx pg_proctab pgmeminfo pgfincore pg_wait_sampling pg_buffercache pg_background pg_cooldown

版本

类型仓库版本PG 大版本包名依赖
EXTMIXED3.21817161514system_stats-
RPMPGDG3.21817161514system_stats_$v-
DEBPIGSTY3.21817161514postgresql-$v-system-stats-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
d12.aarch64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
d13.x86_64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
d13.aarch64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
u22.x86_64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
u22.aarch64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
u24.x86_64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
u24.aarch64
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2
PIGSTY 3.2

构建

您可以使用 pig build 命令构建 system_stats 扩展的 DEB 包:

pig build pkg system_stats         # 构建 DEB 包

安装

您可以直接安装 system_stats 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install system_stats;          # 当前活跃 PG 版本安装
pig ext install -y system_stats -v 18  # PG 18
pig ext install -y system_stats -v 17  # PG 17
pig ext install -y system_stats -v 16  # PG 16
pig ext install -y system_stats -v 15  # PG 15
pig ext install -y system_stats -v 14  # PG 14
dnf install -y system_stats_18       # PG 18
dnf install -y system_stats_17       # PG 17
dnf install -y system_stats_16       # PG 16
dnf install -y system_stats_15       # PG 15
dnf install -y system_stats_14       # PG 14
apt install -y postgresql-18-system-stats   # PG 18
apt install -y postgresql-17-system-stats   # PG 17
apt install -y postgresql-16-system-stats   # PG 16
apt install -y postgresql-15-system-stats   # PG 15
apt install -y postgresql-14-system-stats   # PG 14

创建扩展

CREATE EXTENSION system_stats;

用法

system_stats: PostgreSQL 系统级统计信息

system_stats 提供 SQL 函数来访问操作系统级别的统计信息用于监控。支持 Linux、macOS 和 Windows。

函数

-- 操作系统信息(名称、版本、主机名、运行时间等)
SELECT * FROM pg_sys_os_info();

-- CPU 信息(厂商、型号、核心数、时钟频率、缓存大小)
SELECT * FROM pg_sys_cpu_info();

-- CPU 使用率(用户、系统、空闲、IO等待百分比)
SELECT * FROM pg_sys_cpu_usage_info();

-- 内存信息(总量、已用、空闲、交换区、缓存,单位字节)
SELECT * FROM pg_sys_memory_info();

-- 磁盘 I/O 分析(每设备的读写次数、字节数、时间)
SELECT * FROM pg_sys_io_analysis_info();

-- 磁盘信息(文件系统、挂载点、总量/已用/可用空间)
SELECT * FROM pg_sys_disk_info();

-- 负载均值(1、5、10、15 分钟间隔)
SELECT * FROM pg_sys_load_avg_info();

-- 进程信息(总数、运行中、睡眠、停止、僵尸进程数)
SELECT * FROM pg_sys_process_info();

-- 网络信息(接口、IP、发送/接收的字节数/包数、错误数)
SELECT * FROM pg_sys_network_info();

-- 每进程 CPU 和内存使用情况
SELECT * FROM pg_sys_cpu_memory_by_process();

安全性

访问限制为超级用户和 monitor_system_stats 角色的成员:

-- 授予监控用户访问权限
GRANT monitor_system_stats TO nagios;

-- 或按函数授予 pg_monitor 权限
GRANT EXECUTE ON FUNCTION pg_sys_os_info() TO pg_monitor;

示例:系统概览

SELECT * FROM pg_sys_load_avg_info();  -- 负载均值
SELECT memfree, memused, swapfree FROM pg_sys_memory_info();  -- 内存
SELECT * FROM pg_sys_cpu_usage_info();  -- CPU 使用率明细

最后修改 2026-03-14: update extension metadata (953cbd0)