Skip to main content
View rawEdit

How to flush caches (OS page cache and Postgres buffer pool)

For experiments, it is important to take into account the state of caches – Postgres buffer pool (size of which is controlled by shared_buffers) and OS page cache. If we decide to start each experiment run with cold caches, we need to flush them.

Flushing Postgres buffer pool​

To flush Postgres buffer pool, restart Postgres.

To analyze the current state of the buffer pool, use pg_buffercache.

Flushing OS page cache​

To flush Linux page cache:

sync
echo 3 > /proc/sys/vm/drop_caches

To see the current state of RAM consumption (in MiB) in Linux:

free -m

On macOS, to flush the page cache:

sync
sudo purge

To see the current state of RAM on macOS:

vm_stat