Vacuum'u Erteleyince
Autovacuum'u kısınca tablo şişti

autovacuum_vacuum_scale_factor=0.8, 4 milyon satırlık events tablosunda 3.2 milyon ölü satıra kadar bekler. Gece VACUUM FULL planı vardı, bir gece atlandı, ikinci gece de. Hafta sonunda index 1.1 GB, canlı veri ~180 MB.
Neyi erteledik
Autovacuum I/O yesin istemedik. Yesin istemeyince planner şişmiş heap'i okudu. Liste sorgusu tekrar seq scan'e döndü; index de şişmişti, o da ucuz değildi. 'Index ekle' ticket'ı açıldı. Index eklemek bloat'u çoğaltır.
SELECT relname,
n_live_tup,
n_dead_tup,
last_autovacuum,
last_autoanalyze
FROM pg_stat_user_tables
WHERE relname = 'events';
-- tabloya özel eşik, global 0.8 değil
ALTER TABLE events SET (
autovacuum_vacuum_scale_factor = 0.05,
autovacuum_vacuum_threshold = 2000
);
FULL'u rutin sanmayın; lock alır. Günlük iş autovacuum. FILLFACTOR 70, sık UPDATE gören tabloda HOT'a yer bırakır. Ertelemek 'bakım penceresi yönetmek' değil, görünür satırı şişmiş sayfalarda aratmaktır. XID ufkunu da o pencereye bırakırsan tartışma bloat'tan wraparound'a kayar. İkisini de geceye yığmadım.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap