Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)" / 5 сообщений из 5, страница 1 из 1
01.09.2020, 12:55
    #39994413
DSKalugin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)"
Обнаружил в активных запросах pg_stat_activity следующую запись
Код: sql
1.
autovacuum: VACUUM private.propose_day_2020 (to prevent wraparound)

.
Выполняется слишком долго (сутки). После отмены pg_cancel_backend автоматически перезапускается.
select * from pg_stat_progress_vacuum
Код: plaintext
1.
2.
pid    |datid|datname|relid |phase            |heap_blks_total|heap_blks_scanned|heap_blks_vacuumed|index_vacuum_count|max_dead_tuples|num_dead_tuples
-------|-----|-------|------|-----------------|---------------|-----------------|------------------|------------------|---------------|---------------
3520920|16435|morion |138291|vacuuming indexes|       67949167|         67949167|                 0|                 0|      178956970|         117750

Статистика по таблице
Код: plaintext
1.
2.
3.
relid |schemaname|relname         |seq_scan|seq_tup_read|idx_scan|idx_tup_fetch|n_tup_ins |n_tup_upd|n_tup_del|n_tup_hot_upd|n_live_tup|n_dead_tup|n_mod_since_analyze|last_vacuum        |last_autovacuum    |last_analyze       |last_autoanalyze|vacuum_count|autovacuum_count|analyze_count|autoanalyze_count
------|----------|----------------|--------|------------|--------|-------------|----------|---------|---------|-------------|----------|----------|-------------------|-------------------|-------------------|-------------------|----------------|------------|----------------|-------------|-----------------
138291|private   |propose_day_2020|      10|  3876070393|10112183|  15431128048|1059847953|        0|   302831|            0|3873482005|         0|            7174403|2020-08-15 14:12:05|2020-08-06 23:47:02|2020-08-31 20:46:33|                |           6|               5|            4|                0

эта таблица является секцией, объем которой 1.2Т. Ежедневно в нее заливаются данные и читаются.
В БД автовакуум отключен, я еженедельно вручную запускал вакуум на выходных. Видимо, этого оказалось не достаточно.

В аналогичной секции другой таблицы такой-же процесс (to prevent wraparound) отработал полностью.
В логах не вижу ничего критичного связанного с вакуумоми или этой секцией/таблицей.

Исходя из прочитанного, я понял что это и-за отключенного автовакуума привентивное предотвращение переполнения счетчика транзакций.

Чем это грозит? Что делать в таких случаях подскажите
...
Рейтинг: 0 / 0
01.09.2020, 13:05
    #39994419
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)"
DSKalugin
Обнаружил в активных запросах pg_stat_activity следующую запись
эта таблица является секцией, объем которой 1.2Т. Ежедневно в нее заливаются данные и читаются.
В БД автовакуум отключен, я еженедельно вручную запускал вакуум на выходных. Видимо, этого оказалось не достаточно.

В аналогичной секции другой таблицы такой-же процесс (to prevent wraparound) отработал полностью.
В логах не вижу ничего критичного связанного с вакуумоми или этой секцией/таблицей.

Исходя из прочитанного, я понял что это и-за отключенного автовакуума привентивное предотвращение переполнения счетчика транзакций.

Чем это грозит? Что делать в таких случаях подскажите


Дать доработать... настроить autovacuum более аггресивно чтобы он быстрее диском ворочал... 1.2TB это не быстро может быть даже на очень хорошем оборудовании...
Чревато - полной остановкой базы в single user пока руками этот vacuum freeze по всей базе не сделаете.

ps: "В БД автовакуум отключен, я еженедельно вручную запускал вакуум на выходных." - уж сколько раз твердили миру что так делать не надо а тем более на вашем уровне (иначе бы вы тут эти вопросы не задавали).
...
Рейтинг: 0 / 0
01.09.2020, 13:27
    #39994434
DSKalugin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)"
Maxim Boguk
настроить autovacuum более аггресивно чтобы он быстрее диском ворочал...

если не затруднит, подскажите какими параметрами/значениями это решается.
Pg ver 11, autovacuum включу. Спасибо.
pg_settings под спойлером

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
name                               |setting  |unit
-----------------------------------|---------|----
autovacuum                         |off      |    
autovacuum_analyze_scale_factor    |0.1      |    
autovacuum_analyze_threshold       |50       |    
autovacuum_freeze_max_age          |200000000|    
autovacuum_max_workers             |3        |    
autovacuum_multixact_freeze_max_age|400000000|    
autovacuum_naptime                 |60       |s   
autovacuum_vacuum_cost_delay       |20       |ms  
autovacuum_vacuum_cost_limit       |-1       |    
autovacuum_vacuum_scale_factor     |0.2      |    
autovacuum_vacuum_threshold        |50       |    
vacuum_cleanup_index_scale_factor  |0.1      |    
vacuum_freeze_min_age              |50000000 |    
vacuum_freeze_table_age            |150000000|    
vacuum_multixact_freeze_min_age    |5000000  |    
vacuum_multixact_freeze_table_age  |150000000|    
max_connections                    |100      |    
default_statistics_target          |500      |    
effective_cache_size               |6094848  |8kB 
random_page_cost                   |1.5      |    
vacuum_defer_cleanup_age           |0        |    
log_autovacuum_min_duration        |-1       |ms  
effective_io_concurrency           |2        |    
max_parallel_workers               |32       |    
max_parallel_workers_per_gather    |4        |    
max_worker_processes               |32       |    
vacuum_cost_delay                  |0        |ms  
vacuum_cost_limit                  |200      |    
vacuum_cost_page_dirty             |20       |    
vacuum_cost_page_hit               |1        |    
vacuum_cost_page_miss              |10       |    
autovacuum_work_mem                |-1       |kB  
maintenance_work_mem               |2097152  |kB  
shared_buffers                     |2031616  |8kB 
temp_buffers                       |32768    |8kB 
work_mem                           |40632    |kB  
checkpoint_completion_target       |0.9      |    
max_wal_size                       |8192     |MB  
min_wal_size                       |2048     |MB  
synchronous_commit                 |on       |    
wal_buffers                        |2048     |8kB 
...
Рейтинг: 0 / 0
01.09.2020, 13:39
    #39994446
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)"
DSKalugin,

Ну если в лоб и по максимуму то
autovacuum_vacuum_cost_delay = 0
главное чтобы дисков хватило

если дисков не хватает то от 0 до 20 подбирайте (но будет пропорционально медленнее)

и скорее всего я бы autovacuum_max_workers = 8 (или 10) поставил бы
наверное для начала этого хватит


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
01.09.2020, 13:39
    #39994447
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)"
DSKalugin
Maxim Boguk
настроить autovacuum более аггресивно чтобы он быстрее диском ворочал...

если не затруднит, подскажите какими параметрами/значениями это решается.
Pg ver 11, autovacuum включу. Спасибо.
pg_settings под спойлером

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
name                               |setting  |unit
-----------------------------------|---------|----
autovacuum                         |off      |    
autovacuum_analyze_scale_factor    |0.1      |    
autovacuum_analyze_threshold       |50       |    
autovacuum_freeze_max_age          |200000000|    
autovacuum_max_workers             |3        |    
autovacuum_multixact_freeze_max_age|400000000|    
autovacuum_naptime                 |60       |s   
autovacuum_vacuum_cost_delay       |20       |ms  
autovacuum_vacuum_cost_limit       |-1       |    
autovacuum_vacuum_scale_factor     |0.2      |    
autovacuum_vacuum_threshold        |50       |    
vacuum_cleanup_index_scale_factor  |0.1      |    
vacuum_freeze_min_age              |50000000 |    
vacuum_freeze_table_age            |150000000|    
vacuum_multixact_freeze_min_age    |5000000  |    
vacuum_multixact_freeze_table_age  |150000000|    
max_connections                    |100      |    
default_statistics_target          |500      |    
effective_cache_size               |6094848  |8kB 
random_page_cost                   |1.5      |    
vacuum_defer_cleanup_age           |0        |    
log_autovacuum_min_duration        |-1       |ms  
effective_io_concurrency           |2        |    
max_parallel_workers               |32       |    
max_parallel_workers_per_gather    |4        |    
max_worker_processes               |32       |    
vacuum_cost_delay                  |0        |ms  
vacuum_cost_limit                  |200      |    
vacuum_cost_page_dirty             |20       |    
vacuum_cost_page_hit               |1        |    
vacuum_cost_page_miss              |10       |    
autovacuum_work_mem                |-1       |kB  
maintenance_work_mem               |2097152  |kB  
shared_buffers                     |2031616  |8kB 
temp_buffers                       |32768    |8kB 
work_mem                           |40632    |kB  
checkpoint_completion_target       |0.9      |    
max_wal_size                       |8192     |MB  
min_wal_size                       |2048     |MB  
synchronous_commit                 |on       |    
wal_buffers                        |2048     |8kB 

- почитать ,
- подумать
- ...
- получить профит
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / не завершающийся "autovacuum: VACUUM propose_day_2020 (to prevent wraparound)" / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]