14 мая 2026 года с 11:07 до 11:48 MSK регион msk1 обслуживал запросы с повышенной долей ошибок. Пик — 12% запросов с кодом 503. Другие регионы работали штатно.

Хронология

ВремяСобытие
11:04Выкат конфигурации балансировщика, шаг 1 из 4 (25% узлов)
11:07Рост 503 в msk1, срабатывает алерт
11:09Дежурный подтверждает инцидент, выкат остановлен
11:14Ошибочная гипотеза: перегрузка узлов, добавлена ёмкость
11:31Найдена связь с новым порогом health-проверки
11:38Начат откат конфигурации
11:48Доля ошибок вернулась к фоновой

Причина

В новой конфигурации таймаут health-проверки снизился с 5 до 2 секунд. Проверка выполняется тем же HTTP-клиентом, что и пользовательский трафик, и при высокой загрузке узла ответ иногда занимает 2–3 секунды.

Узел помечался нездоровым и выводился из ротации. Его нагрузка перераспределялась на соседей, те начинали отвечать медленнее, и уже они выпадали из ротации. Классическая каскадная деградация.

Мы ужесточили порог, не проверив распределение времени ответа health-проверки под нагрузкой. В спокойном тестовом окружении 2 секунды выглядели безопасным запасом.

Почему не помогло добавление ёмкости

Новые узлы приходили с той же конфигурацией и попадали в тот же цикл. Это увело расследование на 17 минут в сторону.

Что мы изменили

  • Health-проверки вынесены на отдельный пул соединений и не конкурируют с пользовательским трафиком.
  • Балансировщик не выводит из ротации больше 20% узлов региона одновременно независимо от результатов проверок.
  • Изменения порогов health-проверки помечены как рискованные: выкат только по одному узлу с получасовой паузой.
  • В рантбук добавлен пункт: при каскадной деградации первым делом проверять недавние изменения конфигурации, а не ёмкость.

Компенсации

Клиентам с SLA на тарифе Scale начислены компенсации автоматически в соответствии с условиями SLA. Обращаться за ними не требуется.