Ошибки «overloaded»

YDB возвращает ошибки OVERLOADED в следующих случаях:

  • Перегруженные партиции таблиц, у которых в очереди на выполнение более 15000 запросов.

  • Превышен лимит размера выходной очереди CDC в 10000 элементов или 125 МБ.

  • Партиции таблиц не находятся в нормальном состоянии, например, разделяются/объединяются.

  • Количество открытых сессий с узлом YDB достигло лимита в 1000.

Диагностика

  1. Откройте панель мониторинга Grafana DB overview.

  2. В разделе API details проверьте, есть ли всплески частоты запросов со статусом OVERLOADED на диаграмме Soft errors (retriable).

  3. Чтобы проверить, не связаны ли всплески ошибок OVERLOADED с превышением лимита в 15000 запросов на партицию таблицы:

    1. Во Встроенном UI перейдите на вкладку Databases и нажмите на базу данных.

    2. На вкладке Navigation убедитесь, что требуемая база данных выбрана.

    3. Откройте вкладку Diagnostics.

    4. Откройте вкладку Top shards.

    5. На вкладках Immediate и Historical отсортируйте таблетки по столбцу InFlightTxCount и проверьте, не превышают ли максимальные значения лимит в 15000 запросов.

  4. Чтобы проверить, не связаны ли всплески ошибок OVERLOADED со слишком частыми слияниями и разделениями таблеток, см. Избыточные разделения и слияния партиций таблиц.

  5. Чтобы проверить, не связаны ли всплески ошибок OVERLOADED с превышением лимита в 1000 открытых сессий, см. диаграмму Session count by host на панели мониторинга Grafana DB status.

  6. См. статью Перегруженные таблетки data shard.

Рекомендации

Если YQL-запрос возвращает ошибку OVERLOADED, выполните запрос повторно с экспоненциальной задержкой. YDB SDK предлагает встроенный механизм для обработки временных ошибок. Для получения дополнительной информации см. Обработка ошибок.

Превышение лимита открытых сессий на узле может указывать на проблему в логике приложения.