Infrastructure
load balancer
Компонент, распределяющий входящие запросы между несколькими репликами сервиса.
Что такое load balancer
Load balancer (балансировщик нагрузки) — компонент инфраструктуры, принимающий входящие запросы и распределяющий их между несколькими репликами сервиса. Обеспечивает горизонтальное масштабирование и отказоустойчивость: если одна реплика недоступна, запросы идут на остальные.
Для LLM-сервинга несколько реплик с балансировщиком — стандарт при высокой нагрузке.
Стратегии балансировки
| Стратегия | Как работает | Применение |
|---|---|---|
| Round-robin | Поочерёдно | Равномерные запросы |
| Least connections | К репликам с меньшей нагрузкой | LLM (разные длины ответов) |
| Weighted | По весам реплик | GPU с разной мощностью |
| IP hash | По IP клиента | Sticky sessions |
Для LLM least connections предпочтительнее round-robin: запросы имеют разное время выполнения (зависит от длины ответа).
nginx как балансировщик
upstream llm_backends {
least_conn;
server 192.168.1.10:8000;
server 192.168.1.11:8000;
server 192.168.1.12:8000;
keepalive 32;
}
server {
listen 80;
location /v1/ {
proxy_pass http://llm_backends;
proxy_set_header Connection ''; # keep-alive для streaming
proxy_http_version 1.1;
proxy_read_timeout 300; # длинные streaming-ответы
proxy_buffering off; # не буферизовать SSE
}
}
Связанные термины
- serving — контекст, где применяется балансировщик
- autoscaling — динамическое изменение числа реплик
- health check — проверка готовности реплик
- REST API — запросы, которые балансирует LB
Готовы запустить GPU-задачу?
Запустить GPU-сервер