Задать вопрос

Как отловить плавающий по времени запрос?

Есть плавающий по времени запрос.
Большее количество времени он выполняется за миллисекунды, но периодически случаются провалы до 6 секунд.
После, с параметрами которые отрабатывали 3-6 секунд, запрос выполняется с нормальной скоростью в ms

Как можно понять что происходит?

По процессору нет изменений в это время.
По дискам совсем небольшая просадка по времени.
В памяти тоже нет пиков.

Включён auto_explain, но не можем включить его на analyze уровень т.к это сильно замедлит БД.
пока не совсем понимаю за что зацепиться
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
После, с параметрами которые отрабатывали 3-6 секунд, запрос выполняется с нормальной скоростью в ms

Симптоматика медленного чтения с дисков.
Поставьте pg_stat_statements, включите track_io_timing и посмотрите в blk_read_time, blk_write_time этого запроса относительно числа вызовов и общего времени их выполнения.

PS: обратите внимание, что для СУБД критична латентность дисковой системы. Есть графики латентности io на чтение и запись?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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