Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает автовакуум / 10 сообщений из 10, страница 1 из 1
19.12.2016, 15:03
    #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
19.12.2016, 15:35
    #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
19.12.2016, 17:15
    #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
19.12.2016, 18:51
    #39370534
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает автовакуум
maxxstorm,

в логах случайно нет записей вида "stats collector is not responding" ?
...
Рейтинг: 0 / 0
23.12.2016, 10:12
    #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
23.12.2016, 11:22
    #39373583
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает автовакуум
maxxstorm,

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

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



скобки тут обязательны.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.03.2021, 06:15
    #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
08.03.2021, 10:27
    #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
11.03.2021, 18:39
    #40052682
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает автовакуум
Спасибо!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает автовакуум / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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