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 или узла.
Краткий справочник по конфигурации
| Возможность | Переменная окружения | Значение по умолчанию |
|---|---|---|
| Порт проверки работоспособности worker | DYN_SYSTEM_PORT | 9090 |
| Канареечные проверки работоспособности | DYN_HEALTH_CHECK_ENABLED | false |
| Время ожидания канареечной проверки | DYN_CANARY_WAIT_TIME | 10 секунд |
| Таймаут проверки работоспособности | DYN_HEALTH_CHECK_REQUEST_TIMEOUT | 3 секунды |
| Порог decode-блоков | DYN_ACTIVE_DECODE_BLOCKS_THRESHOLD | 1.0 |
| Порог prefill-токенов | DYN_ACTIVE_PREFILL_TOKENS_THRESHOLD | 10000000 |
Сценарии сбоев и восстановление
Перезапуск pod worker
- Worker получает SIGTERM от Kubernetes
- Эндпоинты немедленно инвалидируются (новые запросы не принимаются)
- Выполняющиеся запросы завершаются или мигрируют (в зависимости от конфигурации)
- Ресурсы очищаются
- Pod перезапускается с чистым состоянием
Сбой worker (неожиданный)
- Срок действия lease в etcd истекает (обнаружение на основе TTL)
- Клиент обнаруживает удаление эндпоинта через etcd watch
- Новые запросы направляются на оставшиеся работоспособные worker
- Выполняющиеся запросы на аварийно завершившемся worker мигрируют (если включено)
Разделение сети
- Worker теряет подключение к etcd/NATS
- Keep-alive для lease завершается ошибкой, и lease со временем истекает
- Worker удаляется из service discovery
- Трафик перенаправляется на доступные worker
Сбой GPU
- Проверка работоспособности движка обнаруживает ошибку GPU (XID, OOM и т. д.)
- Worker инициирует graceful shutdown
- Runtime завершается, движок очищается
- Процесс завершается с кодом 1 для перезапуска pod
Тестирование отказоустойчивости
Dynamo включает комплексный фреймворк тестирования для проверки отказоустойчивости:
- Тесты отмены запросов
- Тесты миграции со сбоями worker
- Тесты failover для etcd HA
- Инъекция аппаратных сбоев (GPU XID, разделение сети)
Подробнее см. в разделе Тестирование отказоустойчивости.
Связанная документация
- Наблюдаемость - Метрики и мониторинг
- Shadow Engine Failover - Активно-пассивный failover движка на том же узле для развертываний Kubernetes
- Distributed Runtime - Архитектура service discovery
- Event Plane - Pub/sub для событий KV cache и метрик worker
- Discovery Plane - Service discovery и координация