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-сервер