后台写入器

负责将已修改的缓冲区写入磁盘的后台进程

后台写入器是一个独立的服务器进程,负责将“脏”的(新建或修改过的)缓冲区写入磁盘数据文件,以减轻普通后端进程的负载。

后台写入器是在 PostgreSQL 8.0 中添加的。

直到 PostgreSQL 9.2,它还负责处理 检查点

配置

当前控制后台写入器行为的配置项如下:

  • bgwriter_delay (integer)
  • bgwriter_lru_maxpages (integer)
  • bgwriter_lru_multiplier (floating point)
  • bgwriter_flush_after (integer)

bgwriter_lru_maxpages 设置为零会有效地禁用后台写入器。

更多详情,请参阅 后台写入器配置文档

统计信息

后台写入器自身写入的缓冲区数量记录在 pg_stat_bgwriter 视图的 "buffers_clean" 列中。

源代码

后台写入器进程的主要代码: src/backend/postmaster/bgwriter.c

实际的“繁重工作”是在 src/backend/storage/buffer/bufmgr.c 中完成的,特别是 BgBufferSync() 函数。

变更历史

进行中

分类

性能, PostgreSQL内部机制

另请参阅

检查点写入器

反馈

后台写入器”的任何评论、建议或更正请在此处提交: 这里