track_io_timing
No restart — reload (superuser)boolean (on/off)
Measures actual time spent on disk reads/writes, shown in EXPLAIN and stats.
What it does
With track_io_timing on, PostgreSQL times individual I/O operations, so EXPLAIN (ANALYZE, BUFFERS) reports real read/write time and pg_stat_* views expose I/O latency. Without it, you only see block counts, not how long they took.
How to tune it
Turn it on — on modern systems the clock overhead is tiny and the visibility is invaluable for separating I/O-bound from CPU-bound queries. You can verify the overhead on your hardware with the pg_test_timing tool first if you're cautious.
What the analyzer flags
- Cold plan — many shared blocks read from disk