Перейти к основному содержимому

For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

Отказоустойчивость

Dynamo предоставляет комплексные механизмы отказоустойчивости, чтобы обеспечить надежный LLM-инференс в production-развертываниях. В этом разделе рассматриваются различные стратегии и возможности, которые позволяют Dynamo корректно обрабатывать сбои и поддерживать доступность сервиса.

Обзор

Отказоустойчивость в Dynamo работает на нескольких уровнях:

УровеньМеханизмНазначение
ЗапросМиграция, отменаОбработка сбоев запросов, которые уже выполняются
WorkerПроверки работоспособности, graceful shutdownОбнаружение сбоев worker и восстановление после них
Процесс движкаShadow Engine FailoverАктивно-пассивное восстановление при сбоях процесса движка на том же узле в Kubernetes
СистемаСброс нагрузки, отклонение запросовПредотвращение перегрузки системы
Инфраструктураetcd HA, устойчивость NATSОбработка сбоев инфраструктурных компонентов

Ключевые возможности

Миграция запросов

Когда worker выходит из строя во время обработки запроса, Dynamo может перенести выполняющиеся запросы на работоспособные worker. Система миграции:

  • Сохраняет частичное состояние генерации (накопленные токены)
  • Прозрачно продолжает генерацию на новом worker
  • Поддерживает непрерывную передачу токенов клиентам

Подробнее см. в разделе Миграция запросов.

Отмена запросов

Dynamo поддерживает отмену выполняющихся запросов, чтобы освобождать вычислительные ресурсы:

  • Сигналы graceful stop для корректного завершения
  • Сигналы kill для немедленного завершения
  • Иерархическое распространение отмены по цепочкам запросов

Подробнее см. в разделе Отмена запросов.

Graceful Shutdown

Worker корректно обрабатывают сигналы завершения работы (SIGTERM/SIGINT):

  • Немедленно прекращают принимать новые запросы
  • При необходимости дожидаются завершения выполняющихся запросов перед остановкой
  • Очищают ресурсы (движки, соединения, временные файлы)

Подробнее см. в разделе Graceful Shutdown.

Отклонение запросов (сброс нагрузки)

Когда worker перегружены, Dynamo отклоняет новые запросы, чтобы предотвратить каскадные сбои:

  • Настраиваемые пороги занятости на основе использования KV cache
  • Мониторинг нагрузки worker в реальном времени
  • Ответы HTTP 503 с рекомендациями по повторной попытке

Подробнее см. в разделе Отклонение запросов.

Проверки работоспособности

Dynamo предоставляет несколько механизмов проверки работоспособности:

  • HTTP-эндпоинты: эндпоинты /health и /live для оркестрации
  • Канареечные проверки работоспособности: активный мониторинг с помощью периодических тестовых запросов
  • Мониторинг движка: автоматическое завершение работы при обнаружении сбоя движка

Подробнее см. в разделе Проверки работоспособности.

Shadow Engine Failover

Для развертываний Kubernetes Shadow Engine Failover может помочь с восстановлением на том же узле после неизвестных сбоев backend-движка или программного процесса. Он использует GPU Memory Service, чтобы сохранять веса модели в памяти, пока подключается резервный или замещающий движок. Он не сохраняет выполняющиеся запросы или состояние KV cache и не покрывает потерю GPU или узла.

Краткий справочник по конфигурации

ВозможностьПеременная окруженияЗначение по умолчанию
Порт проверки работоспособности workerDYN_SYSTEM_PORT9090
Канареечные проверки работоспособностиDYN_HEALTH_CHECK_ENABLEDfalse
Время ожидания канареечной проверкиDYN_CANARY_WAIT_TIME10 секунд
Таймаут проверки работоспособностиDYN_HEALTH_CHECK_REQUEST_TIMEOUT3 секунды
Порог decode-блоковDYN_ACTIVE_DECODE_BLOCKS_THRESHOLD1.0
Порог prefill-токеновDYN_ACTIVE_PREFILL_TOKENS_THRESHOLD10000000

Сценарии сбоев и восстановление

Перезапуск pod worker

  1. Worker получает SIGTERM от Kubernetes
  2. Эндпоинты немедленно инвалидируются (новые запросы не принимаются)
  3. Выполняющиеся запросы завершаются или мигрируют (в зависимости от конфигурации)
  4. Ресурсы очищаются
  5. Pod перезапускается с чистым состоянием

Сбой worker (неожиданный)

  1. Срок действия lease в etcd истекает (обнаружение на основе TTL)
  2. Клиент обнаруживает удаление эндпоинта через etcd watch
  3. Новые запросы направляются на оставшиеся работоспособные worker
  4. Выполняющиеся запросы на аварийно завершившемся worker мигрируют (если включено)

Разделение сети

  1. Worker теряет подключение к etcd/NATS
  2. Keep-alive для lease завершается ошибкой, и lease со временем истекает
  3. Worker удаляется из service discovery
  4. Трафик перенаправляется на доступные worker

Сбой GPU

  1. Проверка работоспособности движка обнаруживает ошибку GPU (XID, OOM и т. д.)
  2. Worker инициирует graceful shutdown
  3. Runtime завершается, движок очищается
  4. Процесс завершается с кодом 1 для перезапуска pod

Тестирование отказоустойчивости

Dynamo включает комплексный фреймворк тестирования для проверки отказоустойчивости:

  • Тесты отмены запросов
  • Тесты миграции со сбоями worker
  • Тесты failover для etcd HA
  • Инъекция аппаратных сбоев (GPU XID, разделение сети)

Подробнее см. в разделе Тестирование отказоустойчивости.

Связанная документация