~/talk

Visualizing Postgres I O Performance for Development

Talkat PGCon 2023 · 2023-05-30..06-02· [databases, observability]
slides:none on file

Local benchmarks use pgbench plus PostgreSQL views (pg_stat_io, pg_buffercache, pg_stat_wal, pg_stat_activity), iostat/diastat, pidstat, and /proc/meminfo to explain why numbers move. Setting backend_flush_after=1MB improves cumulative TPS while iostat shows average queue size spikes aligning with latency; enabling WAL compression (zstd) raises sustained TPS and reduces spikes by shifting to larger, fewer writes; larger wal_segment_size produces higher peaks and lower troughs; initdb causes extra WAL sync cost; read_ahead helps only when device latency is ~1ms; autovacuum delay increases bloat and device utilization. A collection of scripts plus a JSON-based renderer is used to align timelines and compare runs.

AI-written summary · about

  1. 0:00Introduction to talk
  2. 1:07Why visualize IO performance
  3. 3:36Tools and metrics used
  4. 7:51Understanding performance dips
  5. 9:13Wall compression impact
  6. 13:28Separating WAL and data IO
  7. 14:11Benchmarking setup importance
  8. 17:22Wall segment size effects
  9. 21:58Benchmark workload choices
  10. 25:09Kernel read ahead tuning
  11. 28:40Questioning vacuum assumptions
  12. 35:50Auto vacuum effects on cache
  13. 36:12Wall buffers performance
  14. 39:25Peaks and valleys in performance
  15. 43:16Designing effective benchmarks
  16. 44:28Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.