后台写进程
是一个独立的服务器进程,负责将“脏”(新或修改的)缓冲区写入磁盘数据文件,以减少常规后端上的负载。
后台写进程
是在 PostgreSQL 8.0 中添加的。
在 PostgreSQL 9.2 之前,它还负责处理 检查点。
配置
目前,以下配置项控制着后台写进程的行为
bgwriter_delay
(整数
)bgwriter_lru_maxpages
(整数
)bgwriter_lru_multiplier
(浮点数
)bgwriter_flush_after
(整数
)
将 bgwriter_lru_maxpages
设置为零将有效地禁用后台写进程。
有关更多详细信息,请参阅 后台写进程配置文档。
统计
后台写进程本身写入的缓冲区数量记录在 pg_stat_bgwriter 视图的“buffers_clean”列中。
源代码
主要的后台写进程代码: src/backend/postmaster/bgwriter.c
实际的“繁重工作”是在 src/backend/storage/buffer/bufmgr.c 中完成的,特别是函数 BgBufferSync()
。
更改历史记录
正在开发中
- PostgreSQL 15
- 还将在崩溃恢复期间运行(提交 7ff23c6d)
- PostgreSQL 8.0
- 添加(初始提交 cfeca621)
参考
- PostgreSQL 文档: 后台写进程
有用链接
- PostgreSQL 后台写进程 - Postgres 教程 2019 年 7 月的文章