powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает автовакуум
10 сообщений из 10, страница 1 из 1
Не работает автовакуум
    #39370244
maxxstorm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В конфиге настроен:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
"autovacuum";"on"
"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";"300"
"autovacuum_vacuum_cost_delay";"20"
"autovacuum_vacuum_cost_limit";"-1"
"autovacuum_vacuum_scale_factor";"0.2"
"autovacuum_vacuum_threshold";"50"
"autovacuum_work_mem";"-1"



Однако, в pg_stat_activity ничего нет. Процесс запущен:
Код: sql
1.
2.
3.
ps xa|grep vacuum
52050 pts/3    S+     0:00 grep vacuum
65361 ?        Ss     0:13 postgres: autovacuum launcher process



В логах пишет, что запущен:
Код: sql
1.
2016-12-19 14:53:20 MSK [51337-7] DEBUG:  autovacuum: processing database "analize2"



В pg_stat_all_tables поля last_autovacuum,last_autoanalyze пусты. Куда копать?
...
Рейтинг: 0 / 0
Не работает автовакуум
    #39370296
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxxstormВ конфиге настроен:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
"autovacuum";"on"
"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";"300"
"autovacuum_vacuum_cost_delay";"20"
"autovacuum_vacuum_cost_limit";"-1"
"autovacuum_vacuum_scale_factor";"0.2"
"autovacuum_vacuum_threshold";"50"
"autovacuum_work_mem";"-1"



Однако, в pg_stat_activity ничего нет. Процесс запущен:
Код: sql
1.
2.
3.
ps xa|grep vacuum
52050 pts/3    S+     0:00 grep vacuum
65361 ?        Ss     0:13 postgres: autovacuum launcher process



В логах пишет, что запущен:
Код: sql
1.
2016-12-19 14:53:20 MSK [51337-7] DEBUG:  autovacuum: processing database "analize2"



В pg_stat_all_tables поля last_autovacuum,last_autoanalyze пусты. Куда копать?

А есть чего вакумиить то в базе?
Ну и включите log_autovacuum_min_duration=0 и все в логе увидите.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Не работает автовакуум
    #39370422
li_malina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maxxstorm,
Значит в базе нет таблиц над которыми нужно делать avtovacuum
для начала можно выполнит такой запрос
SELECT 'VACUUM FREEZE ' || nspname || '.' || relname || ';' AS relation, age(relfrozenxid) as xid_age
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE relkind = 'r' and age(relfrozenxid) >200000000
ORDER BY age(relfrozenxid) DESC
LIMIT 20;

relkind= 'r' это таблицы
поставить relkind=t -это будут pg_toast

Автовакуyм начнется автоматически как только будут превышены параметры указанные в config
...
Рейтинг: 0 / 0
Не работает автовакуум
    #39370534
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxxstorm,

в логах случайно нет записей вида "stats collector is not responding" ?
...
Рейтинг: 0 / 0
Не работает автовакуум
    #39373514
maxxstorm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как оказалось, общие настройки не подходили для моей архитектуры, так как таблицы разного размера(на порядок). Поэтому я установил для каждой таблицы свои настройки и автовакуум стал работать:

Код: sql
1.
2.
3.
4.
ALTER TABLE san_material SET (autovacuum_vacuum_scale_factor = 0.0);
ALTER TABLE san_material SET (autovacuum_vacuum_threshold = 10000);
ALTER TABLE san_material SET (autovacuum_analyze_scale_factor = 0.0);
ALTER TABLE san_material SET (autovacuum_analyze_threshold = 10000);



Остался один вопрос, как вернуть настройки к дефолтным? чтобы они брались из конфига
...
Рейтинг: 0 / 0
Не работает автовакуум
    #39373583
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxxstorm,

Код: sql
1.
ALTER TABLE san_material RESET autovacuum_analyze_threshold
...
Рейтинг: 0 / 0
Не работает автовакуум
    #39373743
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее

Код: sql
1.
ALTER TABLE san_material RESET (autovacuum_analyze_threshold)



скобки тут обязательны.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Не работает автовакуум
    #40051509
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxxstorm
Код: sql
1.
ALTER TABLE san_material SET (autovacuum_vacuum_threshold = 10000);


Ребята, я прошу прощения за поднятие древней темы, но нигде не могу найти ответ на свой вопрос.
Вот выше мы установили параметр autovacuum_vacuum_threshold = 10000 для конкретной таблицы san_material.
А как мне посмотреть текущее значение параметров, которые устанавливаются таким образом для таблицы san_material?

Видимо это оно:
Код: sql
1.
select reloptions from pg_class where relname = 'san_material' 
...
Рейтинг: 0 / 0
Не работает автовакуум
    #40051528
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic
maxxstorm
Код: sql
1.
ALTER TABLE san_material SET (autovacuum_vacuum_threshold = 10000);


Ребята, я прошу прощения за поднятие древней темы, но нигде не могу найти ответ на свой вопрос.
Вот выше мы установили параметр autovacuum_vacuum_threshold = 10000 для конкретной таблицы san_material.
А как мне посмотреть текущее значение параметров, которые устанавливаются таким образом для таблицы san_material?

Видимо это оно:
Код: sql
1.
select reloptions from pg_class where relname = 'san_material' 



Да так если руками надо.
Если у вас более-менее новый psql то все это видно в \d+ будет

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
mboguk=> alter table t1 SET (autovacuum_vacuum_threshold = 10000);
ALTER TABLE

mboguk=> \d+ t1
                                                Table "public.t1"
 Column |  Type   | Collation | Nullable |            Default             | Storage  | Stats target | Description 
--------+---------+-----------+----------+--------------------------------+----------+--------------+-------------
 id     | integer |           | not null | nextval('t1_id_seq'::regclass) | plain    |              | 
 val    | text    |           |          |                                | extended |              | 
Access method: heap
Options: autovacuum_vacuum_threshold=10000

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Не работает автовакуум
    #40052682
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает автовакуум
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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