Replication lag bytes
Measure replica lag in bytes plus write/flush/replay lag intervals
SELECT client_addr, state, pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS replay_lag_bytes, write_lag, flush_lag, replay_lag FROM pg_stat_replication;
- tool
- postgres29 commands
More postgres commands
-
SELECT datname, pg_size_pretty(pg_database_size(datname)) AS size FROM pg_database ORDER BY pg_database_size(datname) DESC;Human-readable size of every database, largest first
-
SELECT relname, pg_size_pretty(pg_total_relation_size(oid)) AS total, pg_size_pretty(pg_relation_size(oid)) AS table FROM pg_class WHERE relkind='r' ORDER BY pg_total_relation_size(oid) DESC LIMIT 20;Top tables by total size including indexes and TOAST
-
SELECT relname, indexrelname, idx_scan, pg_size_pretty(pg_relation_size(indexrelid)) AS size FROM pg_stat_user_indexes WHERE idx_scan=0 ORDER BY pg_relation_size(indexrelid) DESC;Indexes never scanned (idx_scan=0); candidates to drop and reclaim space
-
SELECT relname, n_dead_tup, last_autovacuum, last_autoanalyze FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 20;Find tables with dead tuples and stale autovacuum runs
-
REINDEX INDEX CONCURRENTLY <name>; -- note: cannot run inside a transaction blockRebuild a bloated index online; note: must run outside a transaction