PostgreSQL pg_stat_bgwriter 视图各个字段详解

解析 PostgreSQL pg_stat_bgwriter 各个字段:

sql 复制代码
select * from pg_stat_bgwriter;
-[ RECORD 1 ]---------+------------------------------
checkpoints_timed     | 13
checkpoints_req       | 1
checkpoint_write_time | 1
checkpoint_sync_time  | 1
buffers_checkpoint    | 0
buffers_clean         | 0
maxwritten_clean      | 0
buffers_backend       | 0
buffers_backend_fsync | 0
buffers_alloc         | 186
stats_reset           | 2025-11-01 19:03:31.207565+08

pg_stat_bgwriter 是一个非常有用的PostgreSQL系统视图,显示了后台写入进程(background writer)的统计信息,帮助了解数据库的I/O性能和检查点行为。

以下详细解析每个字段的含义:

字段解析

检查点相关

  • checkpoints_timed | 13

    • 按计划触发的检查点数量(基于checkpoint_timeout参数)
  • checkpoints_req | 1

    • 按需触发的检查点数量(通常因为WAL日志快满了)
  • checkpoint_write_time | 1

    • 检查点期间花费在写入数据的总时间(毫秒)
  • checkpoint_sync_time | 1

    • 检查点期间花费在同步数据到磁盘的总时间(毫秒)

缓冲区相关

  • buffers_checkpoint | 0

    • 由检查点进程写入的缓冲区数量
  • buffers_clean | 0

    • 由后台写入进程清理的缓冲区数量
  • maxwritten_clean | 0

    • 后台写入进程因达到bgwriter_lru_maxpages限制而停止清理操作的次数
  • buffers_backend | 0

    • 由后端进程直接写入的缓冲区数量
  • buffers_backend_fsync | 0

    • 后端进程被迫自己执行fsync操作的次数
  • buffers_alloc | 186

    • 分配的缓冲区总数

统计重置

  • stats_reset | 2025-11-01 19:03:31.207565+08
    • 上次重置统计信息的时间戳

性能分析要点

从你的数据可以看出:

  1. 检查点行为良好

    • 大部分检查点是按计划触发的(13次),只有1次是按需触发
    • 说明WAL日志配置合理,没有频繁的紧急检查点
  2. I/O负载较轻

    • 所有缓冲区计数都为0或很低
    • 检查点写入和同步时间都很短(1毫秒)
  3. 内存使用正常

    • 分配了186个缓冲区,属于正常范围

监控建议

sql 复制代码
-- 查看检查点比例
SELECT 
  checkpoints_timed,
  checkpoints_req,
  round(100 * checkpoints_req::numeric / (checkpoints_timed + checkpoints_req), 2) 
    as req_checkpoint_pct
FROM pg_stat_bgwriter;

这个视图对于调优bgwriter_delaybgwriter_lru_maxpages等参数非常有帮助。

相关推荐
zyplayer-doc1 分钟前
研发接口文档怎么长期维护:zyplayer-doc把API、Markdown和变更记录放进同一个知识库
大数据·数据库·人工智能·笔记·pdf·ocr
NineData2 分钟前
Oracle 卡住时先看阻塞源,ChatDBA 会先把锁链路理出来
数据库·oracle·ninedata·锁故障·锁等待·chatdba·锁阻塞
Macbethad15 分钟前
基于WPF与.NET的洁净厂房数据孪生平台技术方案:架构、实现与SEMI标准实践
数据库·系统架构
Yana.nice15 分钟前
Linux logrotate 日志切割未生效
linux·运维·服务器
Увидимся вчера33 分钟前
绿盟堡垒机自动化任务—自动改密失败
linux·服务器·自动化
咏方舟【长江支流】36 分钟前
【开源】跨语言·跨平台·跨数据库(6) ——一种ORM缓存的接口实现和容错处理
数据库·缓存·开源·咏方舟-长江支流·用宝框架
努力进修1 小时前
破除工业 AI 业务落地壁垒:多模时序融合架构重塑设备全维度数据价值
数据库·人工智能·架构
静水楼台x1 小时前
spring security
java·数据库·spring
深度研习笔记1 小时前
OpenCV工业视觉进阶14|SQLite违规数据库存储+历史记录查询+Excel报表导出,完成项目商用数据闭环(验收必备)
数据库·opencv·sqlite
拾光Ծ1 小时前
【Linux网络】网络通信实战:UDP & TCP Socket编程实现Echo Server
linux·网络·网络协议·tcp/ip·udp·线程池