Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.03.2021, 16:35
|
|||
---|---|---|---|
|
|||
Долгое выполнение запроса на Hot Stanby |
|||
#18+
Добрый день! На двух серверах Ubuntu 18.04 установлен PostgreSQL 11.8 и настроена потоковая репликация. Ведомый сервер работает в режиме hot standby. Есть некоторый запрос, который на ведомом сервере обычно выполняется за секунду-другую, но изредка этот процесс затягивается на десятки минут. При этом, естественно, растёт отставание репликации на ведомом сервере. В обоих ситуациях нагрузка на серверы меняется несущественно. Если обратиться к pg_stat_activity в тот момент, когда выполнение запроса в очередной раз существенно затянулось, то для этого процесса можно увидеть следующее: Код: sql 1. 2. 3. 4.
Если заглянуть в pg_locks, то для нужного нам pid выдаётся такая информация (пустые стобцы удалены): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Подскажите, пожалуйста, куда смотреть дальше, чтобы понять причину возникшей ситуации? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.03.2021, 16:45
|
|||
---|---|---|---|
Долгое выполнение запроса на Hot Stanby |
|||
#18+
wait_event более чем однозначно указан на DataFileRead почему вас беспокоят pg_locks? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.03.2021, 17:00
|
|||
---|---|---|---|
|
|||
Долгое выполнение запроса на Hot Stanby |
|||
#18+
Ситуация непонятна для меня, поэтому хочу разобраться. Тем более, что далеко не всегда запрос выполняется очень долго, гораздо чаще он выполняется за пару секунд - поэтому и возникла мысль о блокировках. Добавлю, что если запрос прервать и заново выполнить - результат выдаётся сразу же. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.03.2021, 18:49
|
|||
---|---|---|---|
|
|||
Долгое выполнение запроса на Hot Stanby |
|||
#18+
Безенчук, Я бы сказал что если проблема вида "но изредка этот процесс затягивается на десятки минут." то это через модуль auto_explain решать надо https://www.postgresql.org/docs/13/auto-explain.html просто чтобы посмотреть какой план был и сравнить его с планом который обычно получается. Этот вопрос не про блокировки а про неудачный выбор плана базой вероятнее всего. 80% что запрос имеет вид select ... where (набор условий) order by одно_поле limit N при этом по одно_поле есть индекс тут при неудачной оценке базой селективности (набор условий) может пойти index scan + filter и перебрать всю таблицу. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&tablet=1&tid=1994159]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
237ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 351ms |
0 / 0 |