Module M5
Dalibo SCOP
24.09
29 août 2024
Cette formation est sous licence CC-BY-NC-SA. Vous êtes libre de la redistribuer et/ou modifier aux conditions suivantes :
PostgreSQL® Postgres® et le logo Slonik sont des marques déposées par PostgreSQL Community Association of Canada.
Ce document ne couvre que les versions supportées de PostgreSQL au moment de sa rédaction, soit les versions 12 à 16.
VACUUM
ANALYZE
FULL
FREEZE
autovacuum
NB : L’espace est rarement rendu à l’OS !
Ne pas confondre :
VACUUM (ANALYZE)
VACUUM (FREEZE)
VACUUM FULL
PARALLEL
BUFFER_USAGE_LIMIT
vacuum_buffer_usage_limit
SKIP_DATABASE_STATS
ONLY_DATABASE_STATS
SKIP_LOCKED
SET lock_timeout = '1s'
INDEX_CLEANUP off
PROCESS_TOAST off
TRUNCATE off
VERBOSE
Ponctuellement :
DISABLE_PAGE_SKIPPING
pg_stat_activity
top
pg_stat_user_tables
last_vacuum
last_autovacuum
last_analyze
last_autoanalyze
log_autovacuum_min_duration
Pour VACUUM simple / VACUUM FREEZE
VACUUM FREEZE
pg_stat_progress_vacuum
Partie ANALYZE
pg_stat_progress_analyze
Manuel ou via autovacuum
Pour VACUUM FULL
pg_stat_progress_cluster
autovacuum_naptime
autovacuum_max_workers
Seuil de déclenchement =
threshold + scale factor × nb lignes de la table
autovacuum_vacuum_scale_factor
autovacuum_vacuum_threshold
autovacuum_vacuum_insert_threshold
autovacuum_vacuum_insert_scale_factor
autovacuum_analyze_scale_factor
autovacuum_analyze_threshold
ALTER TABLE table_name SET (autovacuum_vacuum_scale_factor = 0.1);
maintenance_work_mem
autovacuum_work_mem
vacuum_cost_page_hit
_miss
_dirty
vacuum_cost_limit
vacuum_cost_delay
autovacuum_vacuum_cost_limit
autovacuum_vacuum_cost_delay
Le but est de geler les numéros de transaction assez vite :
Quand le VACUUM gèle-t-il les lignes ?
age ( pgclass.relfrozenxid )
vacuum_freeze_min_age
vacuum_freeze_table_age
autovacuum_freeze_max_age
pg_cancel_backend
check_pg_activity
xmin
max_freeze_age
“Vacuuming is like exercising. If it hurts, you’re not doing it enough!” (Robert Haas, PGConf.EU 2023, Prague, 13 décembre 2023)
“Vacuuming is like exercising. If it hurts, you’re not doing it enough!”
(Robert Haas, PGConf.EU 2023, Prague, 13 décembre 2023)
last_(auto)analyze
last_(auto)vacuum
ALTER TABLE table_name SET (autovacuum_analyze_scale_factor = 0.01) ; ALTER TABLE table_name SET (autovacuum_vacuum_threshold = 1000000) ;
vacuumdb
N’hésitez pas, c’est le moment !
https://dali.bo/m5_quiz