
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

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
я с мастера и показал

dmitriy
21.11.2016
08:49:26

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

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

Maxim
21.11.2016
09:05:44
а

Vadim
21.11.2016
09:06:10

Dmitry
21.11.2016
09:07:00


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 ? :)

Vadim
21.11.2016
09:07:27

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

Dmitry
21.11.2016
09:12:29

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

Vadim
21.11.2016
09:33:13

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

dmitriy
21.11.2016
10:52:59

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 минут много
это значит, что либо висит еще старая незакомитченная транзакция, либо prepared_xact незакомитченный, либо через слот xmin маленький передается

Vadim
21.11.2016
10:57:09

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:

dmitriy
21.11.2016
11:01:17
и pg_replication_slots