pg_stat_kcache

内核统计信息收集

概览

扩展包名版本分类许可证语言
pg_stat_kcache2.3.1STATBSD 3-ClauseC
ID扩展名BinLibLoadCreateTrustReloc模式
6220pg_stat_kcache-
相关扩展pg_stat_statements pg_profile powa plprofiler pg_stat_monitor pg_qualstats pg_track_settings pg_wait_sampling system_stats

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG2.3.11817161514pg_stat_kcachepg_stat_statements
RPMPGDG2.3.11817161514pg_stat_kcache_$v-
DEBPGDG2.3.11817161514postgresql-$v-pg-stat-kcache-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
d12.aarch64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
d13.x86_64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
d13.aarch64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
u22.x86_64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
u22.aarch64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
u24.x86_64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
u24.aarch64
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1
PGDG 2.3.1

安装

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

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

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

pig install pg_stat_kcache;          # 当前活跃 PG 版本安装
pig ext install -y pg_stat_kcache -v 18  # PG 18
pig ext install -y pg_stat_kcache -v 17  # PG 17
pig ext install -y pg_stat_kcache -v 16  # PG 16
pig ext install -y pg_stat_kcache -v 15  # PG 15
pig ext install -y pg_stat_kcache -v 14  # PG 14
dnf install -y pg_stat_kcache_18       # PG 18
dnf install -y pg_stat_kcache_17       # PG 17
dnf install -y pg_stat_kcache_16       # PG 16
dnf install -y pg_stat_kcache_15       # PG 15
dnf install -y pg_stat_kcache_14       # PG 14
apt install -y postgresql-18-pg-stat-kcache   # PG 18
apt install -y postgresql-17-pg-stat-kcache   # PG 17
apt install -y postgresql-16-pg-stat-kcache   # PG 16
apt install -y postgresql-15-pg-stat-kcache   # PG 15
apt install -y postgresql-14-pg-stat-kcache   # PG 14

预加载配置

shared_preload_libraries = 'pg_stat_statements, pg_stat_kcache';

创建扩展

CREATE EXTENSION pg_stat_kcache CASCADE;  -- 依赖: pg_stat_statements

用法

pg_stat_kcache: PostgreSQL 内核缓存统计

pg_stat_kcache 收集文件系统层实际读写的统计信息,以及每个查询的 CPU 使用情况。它依赖 pg_stat_statements

视图

pg_stat_kcache – 按数据库汇总的统计信息:

列名类型描述
datnamename数据库名称
exec_user_timedouble precision执行语句的用户 CPU 时间(秒)
exec_system_timedouble precision执行语句的系统 CPU 时间(秒)
exec_readsbigint文件系统层读取的字节数
exec_reads_blksbigint文件系统层读取的 8K 块数
exec_writesbigint文件系统层写入的字节数
exec_writes_blksbigint文件系统层写入的 8K 块数
plan_user_timedouble precision规划阶段的用户 CPU 时间(启用追踪时)
plan_system_timedouble precision规划阶段的系统 CPU 时间(启用追踪时)

pg_stat_kcache_detail – 按查询的统计信息,包含查询文本、角色和数据库。

函数

-- 重置所有已收集的统计信息
SELECT pg_stat_kcache_reset();

配置

参数默认值描述
pg_stat_kcache.linux_hz-1Linux CONFIG_HZ(自动检测)
pg_stat_kcache.tracktop追踪级别:topallnone
pg_stat_kcache.track_planningoff追踪规划统计信息(PG 13+)

示例

SELECT datname, exec_user_time, exec_system_time, exec_reads, exec_writes
FROM pg_stat_kcache;

SELECT query, exec_user_time, exec_system_time, exec_reads
FROM pg_stat_kcache_detail
ORDER BY exec_user_time DESC
LIMIT 10;

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