Writing dirty blocks to disk

There are a couple of ways blocks that are dirty can be written to disk. The easiest one to trigger at will is a checkpoint:

postgres=# checkpoint; CHECKPOINT postgres=# SELECT reldatabase,relfilenode,relblocknumber,isdirty FROM pg_buffercache WHERE relfilenode=16391; reldatabase | relfilenode | relblocknumber | isdirty | -------------+-------------+----------------+---------+ 11880 | 16391 | 0 | f | $ ls -l $PGDATA/base/11880/16391* -rw------- 1 postgres postgres 8192 2010-03-01 21:05 /home/postgres/pgwork/data/base/11880/16391 pgbench=# SELECT reldatabase,relfilenode,relblocknumber,isdirty,usagecount FROM pg_buffercache WHERE relfilenode=16399; reldatabase | relfilenode | relblocknumber | isdirty | usagecount ...

Get PostgreSQL 10 High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.