DBA: Vigilancia nocturna

Muchos sistemas tienen un patrón de acumulación constante de datos a lo largo del tiempo. Además, la mayoría de ellos nunca vuelven a cambiar, es decir, están escritos en modo de solo adición .





Estos no son solo varios tipos de registros y métricas de equipos, sino también cosas aparentemente no relacionadas como la correspondencia entre los usuarios o los comentarios sobre las noticias.





Hace aproximadamente un año, ya escribí sobre el modelo para organizar la partición de dichos datos y los cambios en cascada en la estructura de la base de datos causados ​​por esto. Y hoy, usando el ejemplo de nuestro servicio para analizar los registros del servidor PostgreSQL, analizaremos las características de las bases de datos de servicio organizadas de esta manera, y cómo un enfoque competente (y un poco de trabajo nocturno) puede reducir los costos de infraestructura significativamente .





Algo que estamos cargando mucho en el disco ...

Toda la base de nuestro servicio se "corta" en secciones diarias y se reorganiza para obtener el máximo rendimiento. Puede leer más sobre esto en los artículos "Escribir en PostgreSQL en la subluz: 1 host, 1 día, 1TB" y "Ahorrar un centavo en grandes volúmenes en 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