DBA: Jaga Malam

Banyak sistem memiliki pola akumulasi data yang konstan dari waktu ke waktu. Selain itu, kebanyakan dari mereka tidak pernah berubah lagi - yaitu, mereka ditulis dalam mode append-only .





Ini bukan hanya berbagai jenis log dan metrik peralatan, tetapi juga hal-hal yang tampaknya tidak terkait seperti korespondensi antara pengguna atau komentar pada berita.





Sekitar setahun yang lalu, saya sudah menulis tentang model untuk mengatur partisi data tersebut dan perubahan bertingkat dalam struktur database yang disebabkan oleh ini. Dan hari ini, dengan menggunakan contoh layanan kami untuk menganalisis log server PostgreSQL, kami akan menganalisis fitur database layanan yang diatur dengan cara ini, dan bagaimana pendekatan yang kompeten (dan sedikit kerja malam) dapat mengurangi biaya infrastruktur secara signifikan .





Sesuatu yang membuat kami terlalu banyak memuat disk ...

"" . " PostgreSQL : 1 host, 1 day, 1TB" " PostgreSQL".





(. " PostgreSQL"), "" - 100% , , :





" - , - !" ?

, 200MB/s:





... .





- ?.. , ! - !





? , ?   18 maintenance-?  VACUUM, ANALYZE, CREATE INDEX ..





PostgreSQL, " PostgreSQL โ€” , ".





" ! - "

-, autoVACUUM/autoANALYZE:





,   autovacuum (to prevent wraparound)  - - "" , ! , "" ,   150GBโ€ฆ .





" , - , ."

, autoANALYZE?..





 ANALYZE- append-only ! , PK.





, " " - autoanalyze. :





ALTER SYSTEM SET autovacuum_analyze_scale_factor = 1;
--    ,         (x2) 

ALTER SYSTEM SET autovacuum_analyze_threshold = 100000;
-- ...    100K
      
      



"" . , - , .





:





  •  INSERT ... ON CONFLICT UPDATE 





  • - append-only ""





pg_repack

MVCC, "-". .





"" , ,   cron-, 00:15, " " pg_repack, "" :





 pgrepack โ€”  Postgres Pro Standard, .  CLUSTER  VACUUM FULL



, ยซ ยป, .  pgrepack  , ,  CLUSTER



.





VACUUM FREEZE

(append-only) -  VACUUM FREEZE



, "" :





VACUUM FREEZE rawdata_20190419;
VACUUM FREEZE rawplan_20190419;
...
      
      



!

  20 , (disk busy)  ~60%:












All Articles