@pgsql

Страница 166 из 1062
Vadim
21.11.2016
08:37:56
Вакуум руками прибивали недавно?

kill-9

Maxim
21.11.2016
08:38:06
нет

ну теперь хоть понятно, чего делать

Google
Maxim
21.11.2016
08:38:25
dd if=/dev/zero of=/var/lib/postgresql/9.6/main/pg_clog/04EC bs=256K count=1

dmitriy
21.11.2016
08:39:22
Vadim
21.11.2016
08:40:03
А как это влияет?
Бывает бьется при этом статистика в таблицах pg_catalog и по ним нужно делать vacuum full

dmitriy
21.11.2016
08:42:45
не понимаю связи

clog же вообще можно прибить, он по идее из wal должен восстановиться

Vadim
21.11.2016
08:43:53
неа. к сожалению на практике все не так

hot_standby_feedback = on ?

Fike
21.11.2016
08:45:36
Я не очень хорошо разбираюсь во внутренностях постгреса, просто читаю ваши обсуждения. Что такое блоат? Дословный перевод понятен, что это такое в рамках постгреса - не знаю.

Maxim
21.11.2016
08:45:43
Vadim
21.11.2016
08:47:59
Я не очень хорошо разбираюсь во внутренностях постгреса, просто читаю ваши обсуждения. Что такое блоат? Дословный перевод понятен, что это такое в рамках постгреса - не знаю.
Это результат работы MVCC. Когда у вас строка удалена, на самом деле она не перестает существовать. Отсюда рост размеров таблицы. Для того чтобы удалять ненужные строки есть несколько механизмов: внутристраничная очистка, вакуум и полный вакуум. Эти механизмы удаляют физически строки. В двух словах так

Fike
21.11.2016
08:49:00
Понял, спасибо

Vadim
21.11.2016
08:49:04
Maxim
21.11.2016
08:49:11
нет

Google
Maxim
21.11.2016
08:49:17
я с мастера и показал

Dmitry
21.11.2016
08:55:24
Maxim
21.11.2016
08:55:37
нет пока

и кстати слейв так и не попустило

Dmitry
21.11.2016
08:55:55
потеря питания, параметр fsync, ядро, fs, опции монтирования?

Maxim
21.11.2016
08:58:15
потеря питания, параметр fsync, ядро, fs, опции монтирования?
потери питания не было fsync = on # uname -r 4.2.0-38-generic ext4 /dev/mapper/system-postgresql /var/lib/postgresql ext4 defaults 0 2

что с ним не так?
LA >= 50 последние несколько часов

Vadim
21.11.2016
09:00:11
synchronous_commit = on ?

Maxim
21.11.2016
09:00:31
да

Dmitry
21.11.2016
09:02:32
а чем бакэенды занимаются? sudo gdb —batch —ex bt -p $pid

mb seq scan'ы пошли из-за блоатинга?

Maxim
21.11.2016
09:05:09
что-то я не уверен, что в руби тыкать gdb'ой - хорошая идея...

Dmitriy
21.11.2016
09:05:15
Почему тут советуют pg_repack, который использует жуткую магию и может привести к потере данных? pg_compator же безопаснее?

Dmitry
21.11.2016
09:05:32
что-то я не уверен, что в руби тыкать gdb'ой - хорошая идея...
не в руби, а прям в backend postgresql (те что сейчас CPU бьют)

Maxim
21.11.2016
09:05:44
а

Dmitry
21.11.2016
09:07:00
Почему тут советуют pg_repack, который использует жуткую магию и может привести к потере данных? pg_compator же безопаснее?
Багу с потерей данных пофиксили ещё в 2014-м году. Если у вас 1.2+ версия, то можно не переживать за это.

Maxim
21.11.2016
09:07:07
# sudo gdb --batch --ex bt -p 24939 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x0000558fa54c0d20 in hash_search_with_hash_value () #0 0x0000558fa54c0d20 in hash_search_with_hash_value () #1 0x0000558fa52e104b in ?? () #2 0x0000558fa52e18c1 in tbm_add_tuples () #3 0x0000558fa518503f in btgetbitmap () #4 0x0000558fa517f1b2 in index_getbitmap () #5 0x0000558fa52af317 in MultiExecBitmapIndexScan () #6 0x0000558fa52ae389 in MultiExecBitmapAnd () #7 0x0000558fa52aece0 in ?? () #8 0x0000558fa52a5ec1 in ExecScan () #9 0x0000558fa529ebb8 in ExecProcNode () #10 0x0000558fa529acfe in standard_ExecutorRun () #11 0x0000558fa53b7f28 in ?? () #12 0x0000558fa53b94ca in PortalRun () #13 0x0000558fa53b6643 in PostgresMain () #14 0x0000558fa513c3fb in ?? () #15 0x0000558fa535606b in PostmasterMain () #16 0x0000558fa513d142 in main ()

Google
Dmitry
21.11.2016
09:07:23
9.6 ? :)

Dmitry
21.11.2016
09:07:30
паралельный сек скан? :)

Maxim
21.11.2016
09:07:30
да

Dmitry
21.11.2016
09:08:20
и типа до недавнего времени все было ок? тоже с 9.6 тоже с включенным паралельным seq scan?

Maxim
21.11.2016
09:08:20
ну он видимо из коробки такой, конфиги с 9.5 никак не изменились

Dmitry
21.11.2016
09:08:59
тоесть на 9.6 было все ок до недавнего времени?

Maxim
21.11.2016
09:09:04
да

Dmitry
21.11.2016
09:09:21
вангую что потом дешевле стало делать паралельный сек скан из-за блотинга

и поэтому планер начал паралелить запросы

Nikita
21.11.2016
09:10:03
а clog то куда делся? :))

Dmitry
21.11.2016
09:10:13
а вот это загадко

Dmitriy
21.11.2016
09:11:26
Багу с потерей данных пофиксили ещё в 2014-м году. Если у вас 1.2+ версия, то можно не переживать за это.
Магия с триггерами, переименованиями таблиц то никуда не делась. Вопрос в чем: чем лучше pg_repack по сравнению с pg_compactable, раз его все советуют?

Vadim
21.11.2016
09:12:33
а clog то куда делся? :))
у меня терялся на 9.4 после принудительного сброса изменений на диск, остановки варварским методом вакуума (kill -9) и остановкой postgres-а. Они терялись на слейве. Но не на мастере

Dmitry
21.11.2016
09:12:52
кстати что с pg_compactable умеет паралелиться?

Vadim
21.11.2016
09:13:06
Это решалось простым копированием директории на слейв

Dmitriy
21.11.2016
09:15:55
кстати что с pg_compactable умеет паралелиться?
Думаю, в случае запуска нескольких экземпляров, на разные таблицы/схемы/database, ничего плохого не случится. Но вообще, надобности не возникало пока что, т.к. гоняется каждую ночь

Vadim
21.11.2016
09:33:13
Prometheus + Grafana
лучше чем mamonsu ?

Google
Maxim
21.11.2016
10:08:32
не знаю

в общем я запустил-таки вакуум фулл

репак там адски долго работает

хм

INFO: vacuuming "pg_catalog.pg_trigger" INFO: "pg_trigger": found 0 removable, 12 nonremovable row versions in 1 pages DETAIL: 10 dead row versions cannot be removed yet. CPU 0.00s/0.03u sec elapsed 0.03 sec. INFO: vacuuming "public.users" INFO: "users": found 389500 removable, 25880881 nonremovable row versions in 2155699 pages DETAIL: 340234 dead row versions cannot be removed yet. CPU 33.92s/65.32u sec elapsed 268.78 sec.

и на этом месте он стоит

к следующим таблицам не переходит

это так и надо?

Петр
21.11.2016
10:45:32
посмотри может он стоит ожидает, если нет, то значит работает

Admin
ERROR: S client not available

Vadim
21.11.2016
10:46:52
это так и надо?
VACUUM вам полностью пересобирает таблицу + индексы и т д. Скорее всего она у вас большая. Займет некоторое время

Maxim
21.11.2016
10:47:22
ну он же вроде выдал уже вердикт по этой таблице

но к следующей не переходит

Петр
21.11.2016
10:49:05
Лучше вы бы над конкретными таблицами проводили вакуум

dmitriy
21.11.2016
10:50:29
он вроде сначала считает, потом вакуумит

Maxim
21.11.2016
10:50:52
ммм

то есть DETAIL: 340234 dead row versions cannot be removed yet. CPU 33.92s/65.32u sec elapsed 268.78 sec. это были только предварительные расчеты, а весь хардворк вот сейчас идет?

Vadim
21.11.2016
10:51:21
на самом деле вот это странно - 340234 dead row versions cannot be removed yet

Maxim
21.11.2016
10:51:57
все еще никаких сообщений

уже минут 20 наверное

Google
Maxim
21.11.2016
10:53:25
причем в пг_стат_активити куча автовакуумов

postgres=# select pid,query from pg_stat_activity; -[ RECORD 1 ]--------------------------------------- pid | 9937 query | autovacuum: VACUUM public.offer_descriptions -[ RECORD 2 ]--------------------------------------- pid | 10012 query | autovacuum: VACUUM public.cached_offers -[ RECORD 3 ]--------------------------------------- pid | 6957 query | vacuum full VERBOSE ; -[ RECORD 4 ]--------------------------------------- pid | 7066 query | autovacuum: VACUUM public.offers -[ RECORD 5 ]--------------------------------------- pid | 7194 query | select pid,query from pg_stat_activity;

dmitriy
21.11.2016
10:53:56
он может ждать взятия блокировки еще

но 20 минут много

на самом деле вот это странно - 340234 dead row versions cannot be removed yet
вот я про это и говорил, что vacuum full может ничего не дать

это значит, что либо висит еще старая незакомитченная транзакция, либо prepared_xact незакомитченный, либо через слот xmin маленький передается

Vadim
21.11.2016
10:57:09
вот я про это и говорил, что vacuum full может ничего не дать
не не не. не об этом была речь) Речь была о том, что поможет обычный вакуум. Он не поможет, по причине битого clog. Скорее всего оттуда растут ноги невозможности прогнать вакуум фулл.

Maxim
21.11.2016
10:57:27
незакомиченных транзакций не наблюдается

dmitriy
21.11.2016
10:57:45
а на репликах?

репликация через слоты?

Vadim
21.11.2016
10:58:03
попробуйте остановить репликацию и потом прогнать вакуум

Maxim
21.11.2016
10:58:38
репликация через слоты

на репликах ничего кроме моего запроса в стат_активити нет

dmitriy
21.11.2016
10:59:15
Maxim
21.11.2016
11:00:41
оооо, перешел-таки к следующей таблице

INFO: vacuuming "public.user_subscriptions" INFO: "user_subscriptions": found 10318 removable, 42433538 nonremovable row versions in 407373 pages DETAIL: 4751 dead row versions cannot be removed yet. CPU 9.40s/23.22u sec elapsed 71.25 sec.

dmitriy
21.11.2016
11:00:49
покажите select txid_current_snapshot(); на мастере

Maxim
21.11.2016
11:00:50
и опять остановился

postgres=# select txid_current_snapshot(); -[ RECORD 1 ]---------+----------------------- txid_current_snapshot | 7079374155:7079374155:

Страница 166 из 1062