bgwriter_lru_maxpages
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 100 buffers | sighup | integer |
| 15 | 100 buffers | sighup | integer |
| 16 | 100 buffers | sighup | integer |
| 17 | 100 buffers | sighup | integer |
| 18 | 100 buffers | sighup | integer |
| 19 | 100 buffers | sighup | integer |
background writer가 한 라운드에 써낼 수 있는 buffer 수의 상한을 정한다. 기본값은 100이다.
0으로 두면 background writing 자체가 꺼진다. 다만 checkpoint는 별도의 전용 프로세스가 관리하므로 이 설정과 무관하게 계속 수행된다. background writer는 backend가 재사용할 깨끗한 buffer를 미리 준비해 두는 역할이므로, 이 값이 너무 작으면 backend가 dirty buffer를 직접 써내는 일이 늘고 쿼리 지연에 그 비용이 섞여 들어간다.
postgresql.conf나 서버 커맨드라인에서만 설정할 수 있다.
운영 노트: 쓰기가 많은 workload에서
pg_stat_bgwriter(18부터는 pg_stat_io)의 backend 직접 쓰기 비중이 높다면 이 값을 bgwriter_delay, bgwriter_lru_multiplier와 함께 올려 background writer가 더 많이 감당하게 조정할 수 있다.출처: PostgreSQL 18 문서