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

Всем доброго дня. Подскажите, пожалуйста, у меня в коннектах висят

"COMMIT" в статусе "active", а как узнать что было до вызова commit ?

41 ответов

28 просмотров

В логи посмотреть. Если включен какой-то log_statment или auto_explain... А так — это по дефолту никуда не записывается.

Синхронная репликацыя что ли встала?

Ilya Anfimov
Синхронная репликацыя что ли встала?

да вот не понимаю, мне приходит этот коммит и синх реплика схватывает replay_lag Хотя уже настроил, synchronous_commit = remote_apply (был просто On )

Марсель Габдрахманов
физическая.

Хм. МНОГО удалений таблиц/сужэний их сегментов? Или одна удаляется, но на тысячи сегментов?

Марсель Габдрахманов
физическая.

А, слушай, туплю что-то replay_lag — на ведомом смотришь? Тут да, есть какие-то шансы, что если COMMIT ужэ одобрен, но долго что-то делает — то WAL дальшэ не идут, ведомый не видит WAL и ты на нём видишь lag.

Ilya Anfimov
Хм. МНОГО удалений таблиц/сужэний их сегментов? И...

удалений нет, если и есть то одна запись раз в час. приблизительно такая концепция: select * where id in (1, 2, 3) lock for update update field1 = value1, ... where id = 1 update field2 = value2, ... where id = 2 update field3 = value3, ... where id = 3 insert into another_table update another_table2 commit

Ilya Anfimov
А, слушай, туплю что-то replay_lag — на ведомом см...

я на мастере вызываю select * from pg_catalog.pg_stat_replication PG 15.4

Марсель Габдрахманов
физическая.

Кстати, подумалось — сужэния сегментов не в момент COMMIT делаются, так что это не оно. Но удаления таблиц — могут быть...

Марсель Габдрахманов
удаления таблиц точно нет.

Сегментов таблиц? Индэексов? Реиндэксацыя? vacuum full?

А вообще — strace на него, и смотреть, над чем задумался.

Ilya Anfimov
А вообще — strace на него, и смотреть, над чем зад...

strace на "головной процесс ПГ" или на walreceiver ?

Ilya Anfimov
А вообще — strace на него, и смотреть, над чем зад...

commit waiting for wal/log коммиты ждут принятия вала на реплике видимо.

Марсель Габдрахманов
strace на "головной процесс ПГ" или на walreceiver...

Да на всех по очереди. Я бы для начала выяснил — какого чёрта COMMIT висит в active, а не переходит в idle почти мгновенно.

Ilya Anfimov
А, слушай, туплю что-то replay_lag — на ведомом см...

видимо что-то типа того, о чём я три недели назад писал? ну, когда реплика теряла мастер, а после восстановления коннекта не забирала WAL'ы, пока с уже имевшимися replay не доделала...

Phil Chertiev
видимо что-то типа того, о чём я три недели назад ...

Вряд ли. У него-то наборот synchronous = ... apply, так что неприменённых WAL не можэт быть много.

Марсель Габдрахманов
хороший, вопрос.

Слушай, а там на ведомом нет max_standby_streaming_delay ? Если есть, и нет (или протух по max_что-то там) hot_standby_feedback — то понятно, ведущий ждёт ведомого, ведомый получил WAL, который при apply помешает одной из его транзакцый — и ждёт, пока эта транзакцыя завершытся.

Марсель Габдрахманов
max_standby_streaming_delay = 5 hot_standby_feedb...

Показали бы Вы все поля записи pg_stat_activity для "зависшего" backend, что ли...

Марсель Габдрахманов
он в статусе wait_event - IPC - SyncRep

ждет когда синхранная реплика ответит

Vladimir Barsukov
ждет когда синхранная реплика ответит

это я понял, только я не понимаю что вызывает "Лаг " синх реплики.

Марсель Габдрахманов
да вот не понимаю, мне приходит этот коммит и синх...

synchronous_commit = remote_apply — более жёсткий уровень чем просто on, то есть включив его вы замедлили commit на мастере, а не ускорили

S B
synchronous_commit = remote_apply — более жёсткий ...

да я к этому и пришёл, в режиме ON отставанние реплики доходило до 20-ти часов.

я тоже думал про это, смотрел скорость дисков, разницу, даже менял местами реплику и мастер

Марсель Габдрахманов
я тоже думал про это, смотрел скорость дисков, раз...

ну во вервых должно быть главное правило, если синхронная репликация то должно быть не менее 2х реплик, это даже в доке написано. и поставить режим что бы он ожидал подтверждения от хотя бы от одной

Марсель Габдрахманов
я тоже думал про это, смотрел скорость дисков, раз...

мож там индексов каких-то не хватает, которые есть/работают на мастере, а на реплике нет?

S B
мож там индексов каких-то не хватает, которые есть...

а как, при потоковой репликации, может не работать индекс ? Да и при чем тут индекс, если реплика находится только в лишь наполнении WAL

Марсель Габдрахманов
это если бэкапа нет видимо "Нормального".

Скорее — если высокая доступность сервиса очень важна. Тогда да, тогда аппаратная конфигурацыя должна начинаться с трёх серверов, и на все три должно всё литься, и какое-то управление всем этим нужно (хотя такое). (Но в большынстве случаев, когда людям нужна реплика — это не настолько всё существенно).

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта