DBA: Veille de nuit

De nombreux systèmes ont un modèle d'accumulation constante de données au fil du temps. De plus, la plupart d'entre eux ne changent plus jamais, c'est-à-dire qu'ils sont écrits en mode ajout uniquement .





Ce ne sont pas seulement divers types de journaux et de métriques d'équipement, mais aussi des choses apparemment sans rapport avec la correspondance entre les utilisateurs ou les commentaires sur les nouvelles.





Il y a environ un an, j'ai déjà écrit sur le modèle d'organisation du partitionnement de ces données et les changements en cascade dans la structure de la base de données causés par cela. Et aujourd'hui, en utilisant l'exemple de notre service d'analyse des logs de serveurs PostgreSQL, nous analyserons les fonctionnalités de maintenance des bases de données organisées de cette manière, et comment une approche compétente (et un peu de travail de nuit) peut réduire considérablement les coûts d'infrastructure .





Quelque chose que nous chargeons lourdement le disque ...

"" . " 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