172 похожих чатов

Автовакуум не справляется с очисткой. БД Postgres 10.18, AWS RDS(vCPU 2,

RAM 8Gb, SSD(gp2) 1100Gib)

Таблица "spree_datafeed_products"
relid | 16556
schemaname | public
relname | spree_datafeed_products
seq_scan | 20
seq_tup_read | 365522436
idx_scan | 962072108
idx_tup_fetch | 9929276855
n_tup_ins | 2846455
n_tup_upd | 35778058
n_tup_del | 284291955
n_tup_hot_upd | 0
n_live_tup | 3546840
n_dead_tup | 338790851
n_mod_since_analyze | 307930753
last_vacuum |
last_autovacuum |
last_analyze |
last_autoanalyze | 2022-04-29 13:01:43.985749+00
vacuum_count | 0
autovacuum_count | 0
analyze_count | 0
autoanalyze_count | 1

Размеры таблицы и индексов:
indexname | size
index_spree_datafeed_products_on_updated_at | 48 GB
index_spree_datafeed_products_on_state | 35 GB
index_spree_datafeed_products_on_size_variant_field | 40 GB
index_spree_datafeed_products_on_product_id | 32 GB
index_spree_datafeed_products_on_original_id | 31 GB
index_spree_datafeed_products_on_datafeed_id | 42 GB
index_spree_datafeed_products_on_datafeed_id_and_original_id | 31 GB
index_spree_datafeed_products_on_data_hash | 39 GB
spree_datafeed_products_pkey | 18 GB
pg_size_pretty - 419 GB

Воркер:
datid | 16404
datname | milanstyle_production
pid | 2274
backend_start | 2022-05-01 19:52:00.066097+00
xact_start | 2022-05-01 19:52:00.23692+00
query_start | 2022-05-01 19:52:00.23692+00
state_change | 2022-05-01 19:52:00.236921+00
wait_event_type |
wait_event |
state | active
backend_xid |
backend_xmin | 1301636863
query | autovacuum: VACUUM ANALYZE public.spree_datafeed_products
backend_type | autovacuum worker

Настройки:
autovacuum on
autovacuum_analyze_scale_factor 0.05
autovacuum_analyze_threshold 50
autovacuum_freeze_max_age 200000000
autovacuum_max_workers 3
autovacuum_multixact_freeze_max_age 400000000
autovacuum_naptime 30
autovacuum_vacuum_cost_delay 20
autovacuum_vacuum_cost_limit -1
autovacuum_vacuum_scale_factor 0.1
autovacuum_vacuum_threshold 50

В результате работы скрипта по очистке мусора, накопилось много удаленных записей. Ждали больше недели(автоочистки), видимо нужно сильно много ждать. Как лучше "помочь" базе переварить удаленные записи?

4 ответов

10 просмотров

поздравляю, у вас труп (gp2)

Ahmad-Zakhratulaev Автор вопроса
Darafei Praliaskouski
поздравляю, у вас труп (gp2)

ну мы думаем перейти на io1, вроде база работает в норм режиме, объясните пожалуйста что имеете ввиду))

По-моему он тупо повис. Но вообще -- задавать вопрос тех.поддержке амазона. Поскольку во-первых, они как раз берут деньги за то, что рутинные вопросы DBA (включая управление восстановлением и основные задачи рутинного технического обслужывания) они должны взять на себя. Во-вторых -- это не опенсорсный постгрес, это какая-то закрытая СУБД, сделанная с использованием части его кодовой базы. У вас нет ни прав ни возможностей анализировать -- что там происходит и на чём висит автовакуум.

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Есть предложения, как подобное можно упростить?
Hemul GM
12
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Карта сайта