одинаковые селекты с выборкой одной строки из одной таблицы (не по PK, но с индексами). И всё успешно отрабатывает за миллисекунды.
Но раз в пару дней один из запросов стал зависать в статусе active. Причём wait_event у него пустой, да и держать там нечему. Висит по несколько часов, пока не кикнут. Приложение честно ждёт, по-окончании предсказуемо ругается: "Вах, запрос убили!"
Какие могут быть варианты, кроме релятивистского замедления времени в отдельно взятом процессе?
Ну а если смотреть всё что можно (внутри и вне PostgreSQL) по этому процессу, есть ли ещё хоть что-то необычное?
Причины не назову, но можно время выполнения запросов лимитировать, чтобы такое отсекать
А воркер процесс в это время молотит проц? Может зацепки будут если perf или gdb подцепиться ?
контекст процессора для запроса может быть недоступен, но лучше gdb`ой посмотреть, скорее всего, непокрытое ожидание у него
Обсуждают сегодня