18.10. ÐвÑомаÑиÑеÑÐºÐ°Ñ Ð¾ÑиÑÑка
ÐÑи паÑамеÑÑÑ ÑпÑавлÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° авÑооÑиÑÑки. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 23.1.6. ÐамеÑÑÑе, ÑÑо многие из ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов могÑÑ Ð±ÑÑÑ Ð¿ÐµÑеопÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð½Ð° ÑÑовне ÑаблиÑ; Ñм. ÐаÑамеÑÑÑ Ñ ÑанениÑ.
autovacuum(boolean)УпÑавлÑÐµÑ ÑоÑÑоÑнием демона, запÑÑкаÑÑего авÑооÑиÑÑкÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð½ вклÑÑÑн, но ÑÑÐ¾Ð±Ñ Ð°Ð²ÑооÑиÑÑка ÑабоÑала, нÑжно Ñакже вклÑÑиÑÑ track_counts. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко в
postgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако авÑооÑиÑÑÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ оÑклÑÑиÑÑ Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.ÐамеÑÑÑе, ÑÑо даже еÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑклÑÑÑн, ÑиÑÑема бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ Ð¿ÑоÑеÑÑÑ Ð°Ð²ÑооÑиÑÑки, когда ÑÑо Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð·Ð°ÑÐ¸ÐºÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑов ÑÑанзакÑий. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 23.1.5.
log_autovacuum_min_duration(integer)ÐадаÑÑ Ð²ÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ð°Ð²ÑооÑиÑÑки (в миллиÑекÑÐ½Ð´Ð°Ñ ), пÑи пÑевÑÑении коÑоÑого инÑоÑмаÑÐ¸Ñ Ð¾Ð± ÑÑом дейÑÑвии запиÑÑваеÑÑÑ Ð² пÑоÑокол. ÐÑи нÑлевом знаÑении в пÑоÑоколе ÑикÑиÑÑÑÑÑÑ Ð²Ñе дейÑÑÐ²Ð¸Ñ Ð°Ð²ÑооÑиÑÑки. ÐнаÑение -1 (по ÑмолÑаниÑ) оÑклÑÑÐ°ÐµÑ Ð¿ÑоÑоколиÑование дейÑÑвий авÑооÑиÑÑки. ÐапÑимеÑ, еÑли задаÑÑ Ð·Ð½Ð°Ñение
250ms, в пÑоÑоколе бÑдÑÑ ÑикÑиÑоваÑÑÑÑ Ð²Ñе опеÑаÑии авÑомаÑиÑеÑкой оÑиÑÑки и анализа, вÑполнÑемÑе долÑÑе 250 мÑ. ÐÑоме Ñого, когда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð¼ÐµÐµÑ Ð»Ñбое знаÑение, оÑлиÑное оÑ-1, в пÑоÑокол бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ ÑообÑение в ÑлÑÑае пÑопÑÑка дейÑÑÐ²Ð¸Ñ Ð°Ð²ÑооÑиÑÑки из-за конÑликÑÑÑÑей блокиÑовки. Таким обÑазом, вклÑÑение ÑÑого паÑамеÑÑа позволÑÐµÑ Ð¾ÑÑлеживаÑÑ Ð°ÐºÑивноÑÑÑ Ð°Ð²ÑооÑиÑÑки. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако его можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.autovacuum_max_workers(integer)ÐадаÑÑ Ð¼Ð°ÐºÑималÑное ÑиÑло пÑоÑеÑÑов авÑооÑиÑÑки (не ÑÑиÑÐ°Ñ Ð¿ÑоÑеÑÑ, запÑÑкаÑÑий авÑооÑиÑÑкÑ), коÑоÑÑе могÑÑ Ð²ÑполнÑÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо ÑиÑло Ñавно ÑÑÑм. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко пÑи запÑÑке ÑеÑвеÑа.
autovacuum_naptime(integer)ÐадаÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑÑ Ð·Ð°Ð´ÐµÑÐ¶ÐºÑ Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð·Ð°Ð¿ÑÑками авÑооÑиÑÑки Ð´Ð»Ñ Ð¾ÑделÑной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðемон авÑооÑиÑÑки пÑовеÑÑÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ ÑеÑез заданнÑй инÑеÑвал вÑемени и вÑдаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
VACUUMиANALYZE, когда ÑÑо ÑÑебÑеÑÑÑ Ð´Ð»Ñ ÑÐ°Ð±Ð»Ð¸Ñ ÑÑой базÑ. ÐадеÑжка задаÑÑÑÑ Ð² ÑекÑÐ½Ð´Ð°Ñ Ð¸ по ÑмолÑÐ°Ð½Ð¸Ñ Ñавна одной минÑÑе (1min). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа.autovacuum_vacuum_threshold(integer)ÐадаÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñное ÑиÑло изменÑннÑÑ Ð¸Ð»Ð¸ ÑдалÑннÑÑ ÐºÐ¾ÑÑежей, пÑи коÑоÑом бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ
VACUUMÐ´Ð»Ñ Ð¾ÑделÑно взÑÑой ÑаблиÑÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 50 коÑÑежей. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако данное знаÑение можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÑаннÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.autovacuum_analyze_threshold(integer)ÐадаÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñное ÑиÑло добавленнÑÑ , изменÑннÑÑ Ð¸Ð»Ð¸ ÑдалÑннÑÑ ÐºÐ¾ÑÑежей, пÑи коÑоÑом бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ
ANALYZEÐ´Ð»Ñ Ð¾ÑделÑно взÑÑой ÑаблиÑÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 50 коÑÑежей. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако данное знаÑение можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÑаннÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.autovacuum_vacuum_scale_factor(floating point)ÐадаÑÑ Ð¿ÑоÑÐµÐ½Ñ Ð¾Ñ ÑазмеÑа ÑаблиÑÑ, коÑоÑÑй бÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ðº
autovacuum_vacuum_thresholdпÑи вÑбоÑе поÑога ÑÑабаÑÑÐ²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑVACUUM. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 0.2 (20% Ð¾Ñ ÑазмеÑа ÑаблиÑÑ). ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако данное знаÑение можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÑаннÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.autovacuum_analyze_scale_factor(floating point)ÐадаÑÑ Ð¿ÑоÑÐµÐ½Ñ Ð¾Ñ ÑазмеÑа ÑаблиÑÑ, коÑоÑÑй бÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ðº
autovacuum_analyze_thresholdпÑи вÑбоÑе поÑога ÑÑабаÑÑÐ²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑANALYZE. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 0.1 (10% Ð¾Ñ ÑазмеÑа ÑаблиÑÑ). ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако данное знаÑение можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÑаннÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.autovacuum_freeze_max_age(integer)ÐадаÑÑ Ð¼Ð°ÐºÑималÑнÑй возÑаÑÑ (в ÑÑанзакÑиÑÑ ) Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ
pg_class.relfrozenxidнекоÑоÑой ÑаблиÑÑ, пÑи доÑÑижении коÑоÑого бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑена опеÑаÑиÑVACUUMÐ´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð·Ð°ÑÐ¸ÐºÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑов ÑÑанзакÑий в ÑÑой ÑаблиÑе. ÐамеÑÑÑе, ÑÑо ÑиÑÑема запÑÑÑÐ¸Ñ Ð¿ÑоÑеÑÑÑ Ð°Ð²ÑооÑиÑÑки Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð·Ð°ÑикливаниÑ, даже еÑли Ð´Ð»Ñ Ð²ÑÐµÑ Ð´ÑÑÐ³Ð¸Ñ Ñелей авÑооÑиÑÑка оÑклÑÑена.ÐÑи оÑиÑÑке могÑÑ Ñакже ÑдалÑÑÑÑÑ ÑÑаÑÑе ÑÐ°Ð¹Ð»Ñ Ð¸Ð· подкаÑалога
pg_clog, поÑÑÐ¾Ð¼Ñ Ð·Ð½Ð°Ñение по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑавниÑелÑно мало â 200 миллионов ÑÑанзакÑий. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко пÑи запÑÑке ÑеÑвеÑа, но Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑÐ°Ð±Ð»Ð¸Ñ ÐµÐ³Ð¾ можно опÑеделиÑÑ Ð¿Ð¾-дÑÑгомÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 23.1.5.autovacuum_multixact_freeze_max_age(integer)ÐадаÑÑ Ð¼Ð°ÐºÑималÑнÑй возÑаÑÑ (в мÑлÑÑиÑÑанзакÑиÑÑ ) Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ
pg_class.relminmxidÑаблиÑÑ, пÑи доÑÑижении коÑоÑого бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑена опеÑаÑиÑVACUUMÐ´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð·Ð°ÑÐ¸ÐºÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑов мÑлÑÑиÑÑанзакÑий в ÑÑой ÑаблиÑе. ÐамеÑÑÑе, ÑÑо ÑиÑÑема запÑÑÑÐ¸Ñ Ð¿ÑоÑеÑÑÑ Ð°Ð²ÑооÑиÑÑки Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð·Ð°ÑикливаниÑ, даже еÑли Ð´Ð»Ñ Ð²ÑÐµÑ Ð´ÑÑÐ³Ð¸Ñ Ñелей авÑооÑиÑÑка оÑклÑÑена.ÐÑи оÑиÑÑке мÑлÑÑиÑÑанзакÑий могÑÑ Ñакже ÑдалÑÑÑÑÑ ÑÑаÑÑе ÑÐ°Ð¹Ð»Ñ Ð¸Ð· подкаÑалогов
pg_multixact/membersиpg_multixact/offsets, поÑÑÐ¾Ð¼Ñ Ð·Ð½Ð°Ñение по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑавниÑелÑно мало â 400 миллионов мÑлÑÑиÑÑанзакÑий. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ ÑолÑко пÑи запÑÑке ÑеÑвеÑа, но Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑÐ°Ð±Ð»Ð¸Ñ ÐµÐ³Ð¾ можно опÑеделиÑÑ Ð¿Ð¾-дÑÑгомÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 23.1.5.1.autovacuum_vacuum_cost_delay(integer)ÐадаÑÑ Ð·Ð°Ð´ÐµÑÐ¶ÐºÑ Ð¿Ñи пÑевÑÑении пÑедела ÑÑоимоÑÑи, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð¿Ñи авÑомаÑиÑеÑÐºÐ¸Ñ Ð¾Ð¿ÐµÑаÑиÑÑ
VACUUM. ÐÑи знаÑении -1 пÑименÑеÑÑÑ Ð¾Ð±ÑÑÐ½Ð°Ñ Ð·Ð°Ð´ÐµÑжка vacuum_cost_delay. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 20 миллиÑекÑнд. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако его можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.autovacuum_vacuum_cost_limit(integer)ÐадаÑÑ Ð¿Ñедел ÑÑоимоÑÑи, коÑоÑÑй бÑÐ´ÐµÑ ÑÑиÑÑваÑÑÑÑ Ð¿Ñи авÑомаÑиÑеÑÐºÐ¸Ñ Ð¾Ð¿ÐµÑаÑиÑÑ
VACUUM. ÐÑи знаÑении -1 (по ÑмолÑаниÑ) пÑименÑеÑÑÑ Ð¾Ð±ÑÑное знаÑение vacuum_cost_limit. ÐамеÑÑÑе, ÑÑо ÑÑо знаÑение ÑаÑпÑеделÑеÑÑÑ Ð¿ÑопоÑÑионалÑно ÑÑеди вÑÐµÑ ÑабоÑаÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов авÑооÑиÑÑки, еÑли Ð¸Ñ Ð±Ð¾Ð»ÑÑе одного, Ñак ÑÑо ÑÑмма огÑаниÑений вÑÐµÑ Ð¿ÑоÑеÑÑов никогда не пÑевоÑÑ Ð¾Ð´Ð¸Ñ Ð´Ð°Ð½Ð½Ñй пÑедел. ÐадаÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко вpostgresql.confили в командной ÑÑÑоке пÑи запÑÑке ÑеÑвеÑа. Ðднако его можно пеÑеопÑеделиÑÑ Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑаблиÑ, изменив Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ñ ÑанениÑ.