Ошибки «overloaded»
YDB возвращает ошибки OVERLOADED
в следующих случаях:
-
Перегруженные партиции таблиц, у которых в очереди на выполнение более 15000 запросов.
-
Превышен лимит размера выходной очереди CDC в 10000 элементов или 125 МБ.
-
Партиции таблиц не находятся в нормальном состоянии, например, разделяются/объединяются.
-
Количество открытых сессий с узлом YDB достигло лимита в 1000.
Диагностика
-
Откройте панель мониторинга Grafana DB overview.
-
В разделе API details проверьте, есть ли всплески частоты запросов со статусом
OVERLOADED
на диаграмме Soft errors (retriable). -
Чтобы проверить, не связаны ли всплески ошибок
OVERLOADED
с превышением лимита в 15000 запросов на партицию таблицы:-
Во Встроенном UI перейдите на вкладку Databases и нажмите на базу данных.
-
На вкладке Navigation убедитесь, что требуемая база данных выбрана.
-
Откройте вкладку Diagnostics.
-
Откройте вкладку Top shards.
-
На вкладках Immediate и Historical отсортируйте таблетки по столбцу InFlightTxCount и проверьте, не превышают ли максимальные значения лимит в 15000 запросов.
-
-
Чтобы проверить, не связаны ли всплески ошибок
OVERLOADED
со слишком частыми слияниями и разделениями таблеток, см. Избыточные разделения и слияния партиций таблиц. -
Чтобы проверить, не связаны ли всплески ошибок
OVERLOADED
с превышением лимита в 1000 открытых сессий, см. диаграмму Session count by host на панели мониторинга Grafana DB status. -
См. статью Перегруженные таблетки data shard.
Рекомендации
Если YQL-запрос возвращает ошибку OVERLOADED
, выполните запрос повторно с экспоненциальной задержкой. YDB SDK предлагает встроенный механизм для обработки временных ошибок. Для получения дополнительной информации см. Обработка ошибок.
Превышение лимита открытых сессий на узле может указывать на проблему в логике приложения.