# vLLM, Ollama, llama.cpp или SGLang: что ставить на сервер

> vLLM, Ollama, llama.cpp и SGLang на своём GPU-сервере: чем отличаются, что ставить для себя, для команды и для продукта, на какой карте и сколько это стоит.

Источник: https://infragid.ru/vllm-vs-ollama/ · Обновлено: 2026-11-09 · Цены проверены: 2026-11-08 · Раздел: Нейросети и GPU

**Коротко.** Для себя и одного-двух пользователей ставьте Ollama или llama.cpp: они запускаются за минуты и работают даже без видеокарты. Для команды и продукта, где запросы идут параллельно, — vLLM, а SGLang — когда у запросов длинное общее начало (агенты, RAG, один системный промпт). Все четыре движка запускают модель на 8 млрд параметров на одной карте L4 24 ГБ, которая в облаке стоит 69,52 ₽/час.

**Наш выбор.** Для внутреннего чат-бота или сервиса на 5–30 человек — vLLM на облачном сервере с L4 24 ГБ: OpenAI-совместимый API из коробки, параллельные запросы обрабатываются вместе, а не по очереди, оплата только за часы работы.
- Движок: vLLM в Docker, модель до 8 млрд параметров в 16 битах или до 14 млрд в 4-битном сжатии
- Сервер: 1 × L4 24 ГБ · 8 vCPU · 32 ГБ RAM
- Цена от: 69,52 ₽/час
- Выделенный на месяц: RTX 4090 24 ГБ, диски и безлимитный канал входят — 56 900 ₽/мес
- Когда не подходит: один пользователь и модель в GGUF — проще Ollama; модели от 30 млрд — нужна карта на 48–96 ГБ

## Что нужно понять за минуту

Все четыре программы делают одно и то же: загружают открытую языковую модель и отвечают на запросы по HTTP. У всех есть API в формате OpenAI, так что чат-интерфейс, n8n или ваш код подключаются к любой из них одинаково. Разница в том, **сколько людей движок обслуживает одновременно** и **на каком железе он работает**.

- **Ollama** — самый простой путь. Одна команда на установку, модели скачиваются по имени (`ollama pull qwen3:8b`). Под капотом — тот же движок ggml, что и у llama.cpp, плюс удобная обёртка.
- **llama.cpp** — лёгкий движок на C++ для моделей в формате GGUF. Работает на процессоре, на видеокарте или на обоих сразу: если модель не влезла в видеопамять, часть слоёв остаётся на CPU. Сервер `llama-server` отдаёт OpenAI-совместимый API.
- **vLLM** — сервер для продакшена на видеокартах. Видеопамять под контекст он раздаёт страницами (PagedAttention) и склеивает запросы разных пользователей в общие пакеты на лету (continuous batching). Поэтому при 10–30 одновременных запросах он не выстраивает их в очередь. Коротко о движке — в [глоссарии](/glossarij/vllm/).
- **SGLang** — такой же серверный движок, как vLLM, с упором на повторное использование общего начала запросов (RadixAttention). Выигрывает, когда у запросов длинный общий префикс: агенты, RAG, один большой системный промпт.

Одно правило помогает больше любых таблиц: **для одного пользователя разница между движками обычно небольшая** — скорость ответа больше зависит от карты и степени сжатия модели, чем от программы. Большая разница появляется, когда пишут сразу несколько человек. Ollama и llama.cpp обрабатывают ограниченное число запросов параллельно, остальные ждут. vLLM и SGLang для этого и созданы.

Цифр токенов в секунду в этой статье нет сознательно. Они сильно зависят от модели, длины запросов, версии движка и карты, а чужие бенчмарки на другом железе ничего не скажут о вашем. Ниже — команда, которой за час на арендованной карте можно получить свои цифры.

## Что ставить: короткая таблица

| Задача | Что ставить | Почему |
|---|---|---|
| Попробовать модель, личный ассистент | Ollama | установка за минуты, модели по имени |
| Сервер без видеокарты, маленькая модель | llama.cpp | работает на CPU, модели в GGUF |
| Модель больше видеопамяти | llama.cpp или Ollama | часть слоёв уходит на процессор |
| => Чат-бот или API для команды 5–30 человек | vLLM | параллельные запросы, ключ доступа, метрики |
| Агенты, RAG с общим системным промптом | SGLang или vLLM | переиспользование общего начала запросов |
| Несколько карт в одном сервере | vLLM или SGLang | модель делится между картами (tensor parallel) |

Если сомневаетесь между vLLM и SGLang — начните с vLLM: у него больше поддерживаемых моделей и готовых инструкций. Пошаговая установка с Docker и ключом API — в гайде [vLLM на своём GPU-сервере](/vllm-ustanovka/).

## Сколько стоит железо под каждый движок

Сам софт бесплатный, платите только за сервер. Что выбрать, решает размер модели: на 24 ГБ видеопамяти помещаются модели до 14 млрд параметров в 4-битном сжатии с запасом на контекст, для 30 млрд в 8 битах нужна карта на 48 ГБ, для 70 млрд — на 96 ГБ. Под свою модель и число пользователей посчитайте в [калькуляторе видеопамяти](/instrumenty/podbor-gpu-pod-model/).

| Где запускать | Память | Цена | Месяц круглосуточно, ≈ | Каким движкам |
|---|---|---:|---:|---|
| Облачный сервер без GPU, 8 vCPU | 32 ГБ RAM | — | 14 436,42 ₽/мес | llama.cpp, Ollama |
| => Облачный сервер с L4 | 24 ГБ | 69,52 ₽/час | 50 750 ₽ | все четыре |
| Облачный сервер с RTX 4090 48 ГБ | 48 ГБ | 146,42 ₽/час | 106 900 ₽ | все четыре |
| Облачный сервер с RTX PRO 6000 | 96 ГБ | 289,79 ₽/час | 211 550 ₽ | все четыре |
| Выделенный сервер с RTX 4090 24 ГБ | 24 ГБ | 1 890 ₽/день | 56 900 ₽/мес | все четыре |
| Dedicated Inference, qwen3-8b | — | от 63,30 ₽/час | 46 200 ₽ | уже vLLM внутри |

Облачные GPU — калькулятор пула ru-7a (Москва), минимальная конфигурация с картой, диск и IP отдельно. Сервер без GPU — линейка Standard, пул ru-9a (Санкт-Петербург), без диска и IP. Месяц для почасовых позиций — наш расчёт: цена часа × 730 часов. Цены с НДС, проверено 08.11.2026 · [источник](https://selectel.ru/services/cloud/servers/gpu/)
{: .stamp}

Выделенный сервер с RTX 4090 24 ГБ дороже облачного L4 при круглосуточной работе, но в него входят 128 ГБ оперативной памяти, два NVMe по 2 ТБ и безлимитный канал — в облаке диск под веса модели оплачивается отдельно. Посуточный тариф удобен для разового замера движков: сутки на одной карте, все четыре варианта на одной модели.

Последняя строка — вариант «ничего не ставить». Dedicated Inference запускает модель из каталога провайдера с OpenAI-совместимым API, и для языковых моделей внутри работает тот же vLLM. Платите за часы работы, токены не тарифицируются. Что выгоднее при вашем объёме запросов — готовая модель, оплата за токены или свой сервер, — считает калькулятор [LLM по API или свой GPU](/instrumenty/llm-api-ili-svoj-gpu/).

## Как запустить и сравнить на своей карте

Все команды ниже публикуют порт только на `127.0.0.1`: наружу API открывают через reverse proxy с ключом. Модель для примера — Qwen3-8B: в 16 битах её веса занимают около 16 ГБ и помещаются на L4 24 ГБ (наш расчёт: 8 млрд параметров × 2 байта).

**vLLM** — порт 8000:

```bash
docker run -d --gpus all --ipc=host -p 127.0.0.1:8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen3-8B --max-model-len 16384 --api-key "$LLM_API_KEY"
```

**SGLang** — порт 30000:

```bash
docker run -d --gpus all --ipc=host --shm-size 16g -p 127.0.0.1:30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  lmsysorg/sglang:latest \
  python3 -m sglang.launch_server --model-path Qwen/Qwen3-8B \
  --host 0.0.0.0 --port 30000 --api-key "$LLM_API_KEY"
```

**llama.cpp** — порт 8080, модель в GGUF скачайте заранее в `~/models`:

```bash
docker run -d --gpus all -p 127.0.0.1:8080:8080 -v ~/models:/models \
  ghcr.io/ggml-org/llama.cpp:server-cuda \
  -m /models/Qwen3-8B-Q4_K_M.gguf --host 0.0.0.0 --port 8080 \
  -ngl 99 -c 32768 --parallel 4 --api-key "$LLM_API_KEY"
```

Здесь `-ngl 99` переносит на видеокарту все слои, а `-c 32768` — общий контекст, который делится между четырьмя параллельными слотами (по 8 192 токена на каждого).

**Ollama** — порт 11434, число параллельных запросов задаётся переменной `OLLAMA_NUM_PARALLEL`:

```bash
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3:8b
```

Первая строка запускает официальный установщик Ollama: он ставит программу и службу systemd. Если не хотите выполнять скрипт из интернета вслепую, сначала скачайте его и прочитайте. По умолчанию Ollama слушает только `127.0.0.1:11434`, так что наружу он не открыт.

Для сравнения подойдёт команда `vllm bench serve` из пакета vLLM. Она шлёт запросы в любой OpenAI-совместимый API и считает пропускную способность и время до первого токена. Пример для llama.cpp; для других движков меняйте `--base-url`, а для Ollama добавьте `--served-model-name qwen3:8b`. Ключ API команда берёт из переменной `OPENAI_API_KEY`:

```bash
vllm bench serve --backend openai \
  --base-url http://127.0.0.1:8080 --endpoint /v1/completions \
  --model Qwen/Qwen3-8B \
  --dataset-name random --random-input-len 1000 --random-output-len 300 \
  --num-prompts 200 --max-concurrency 8
```

Прогоните одну и ту же модель с `--max-concurrency` 1, 8 и 32. Смотрите на две цифры: суммарные токены в секунду (сколько людей выдержит сервер) и время до первого токена (насколько долго человек ждёт начала ответа). Учтите, что у llama.cpp и Ollama модель сжата до 4 бит, а у vLLM и SGLang в примере — в 16 битах. Для честного сравнения берите одинаковую точность или хотя бы помните о разнице в качестве ответов.

## Что не подойдёт и ограничения

- **Ollama без защиты.** В Ollama нет проверки ключа доступа: открытый наружу порт 11434 — это бесплатная нейросеть для всех, кто его найдёт. Публикуйте только на `127.0.0.1` и ставьте перед ним reverse proxy с авторизацией.
- **vLLM занимает почти всю видеопамять.** По умолчанию он резервирует больше 90 % памяти карты под веса и кэш контекста (параметр `--gpu-memory-utilization`, в версиях 2026 года — 0,92). Второй движок или вторая модель на той же карте без настройки не запустятся.
- **Форматы моделей разные.** vLLM и SGLang работают с моделями в формате Hugging Face (в том числе AWQ, GPTQ, FP8), llama.cpp и Ollama — с GGUF. Поддержка GGUF в vLLM есть, но экспериментальная: под vLLM берите обычные веса.
- **Мало памяти — не только про веса.** Каждый параллельный пользователь занимает видеопамять под свой контекст. Модель, которая влезла для одного человека, может не выдержать десятерых. Это одинаково для всех четырёх движков.
- **SGLang меняется быстро.** Флаги запуска между версиями иногда меняются, а образы 2026 года собраны под CUDA 13 и требуют свежий драйвер NVIDIA — проверьте версию в `nvidia-smi` до запуска. Закрепляйте версию образа вместо `latest`, когда сервис работает в продакшене, — это касается и vLLM.
- **Облачный GPU нельзя зарезервировать.** Если в выбранном пуле нет свободной карты, сервер не создастся с ошибкой «No valid host was found». Для долгого проекта с гарантией карты берите выделенный сервер.
- **Ноль на балансе.** Облачный сервер с GPU блокируется, и если долг не погасить за 12 часов, сервер удаляется вместе с данными. Веса моделей и конфиги держите так, чтобы их можно было быстро развернуть заново.
- **Dedicated Inference — не для своей модели.** Сервис работает в режиме предварительного доступа, только в Москве, и загрузить туда свою или дообученную модель нельзя. Для своей модели нужен свой сервер с vLLM или SGLang. Как собрать такой сервис целиком — в решении [своя LLM на сервере](/svoya-llm-na-servere/).

## Как мы сделали

!!! how "Как мы сделали"
    Выбор движка у нас начинается с вопроса «нужна ли тут вообще видеокарта». Для поиска по своим документам мы держим модель эмбеддингов bge-m3 на процессоре домашнего сервера: ей выделено 4 vCPU и 4 ГБ памяти, ответ приходит примерно за 0,17 с, тексты не покидают наш периметр. Распознавание речи (Whisper) работает на парке дешёвых телефонов. А крупные языковые модели мы запускаем только в облаке. По нашей нагрузке почасовое облако выгодно, пока карта занята меньше 16–18 часов в сутки, дальше дешевле выделенный сервер. Точный порог зависит от карты: для своей посчитайте в калькуляторе [облако или выделенный GPU](/instrumenty/gpu-oblako-ili-vydelennyj/).


## Частые вопросы

**Что выбрать: vLLM или SGLang?**

Оба движка рассчитаны на много параллельных запросов и отдают OpenAI-совместимый API. vLLM поддерживает больше моделей и железа, у него крупнее сообщество и больше готовых инструкций — это выбор по умолчанию. SGLang стоит попробовать, если у ваших запросов длинное общее начало: один большой системный промпт, агенты с многошаговыми цепочками, RAG с одинаковыми инструкциями. Решать лучше замером на своей модели и своём профиле запросов.

**Чем vLLM отличается от llama.cpp?**

llama.cpp — лёгкий движок на C++ для моделей в формате GGUF: работает на процессоре, на видеокарте или на обоих сразу, если модель не влезла в видеопамять целиком. vLLM работает с моделями в формате Hugging Face на видеокарте и выигрывает, когда одновременно пишут много пользователей. Для одного пользователя или слабого железа берите llama.cpp, для сервиса на команду — vLLM.

**vLLM или Ollama — что лучше для сервера?**

Ollama удобнее: одна команда на установку, модели скачиваются по имени, есть OpenAI-совместимый API. Но в Ollama нет проверки ключа доступа, и под параллельной нагрузкой он заметно уступает vLLM. Для себя и тестов — Ollama, для продукта и команды — vLLM за reverse proxy с ключом.

**Как сделать бенчмарк vLLM и других движков?**

В пакете vLLM есть команда vllm bench serve. Она шлёт запросы в любой OpenAI-совместимый API и считает токены в секунду и задержку первого токена. Запустите её против каждого движка с одной моделью, одинаковой длиной запросов и ответов и разным числом одновременных запросов: 1, 8 и 32.

**Можно ли запустить LLM на сервере без видеокарты?**

Да, через llama.cpp или Ollama. Небольшая модель в 4-битном сжатии работает на облачном сервере с 8 vCPU и 32 ГБ памяти, но отвечает в разы медленнее, чем на GPU, и годится для одного пользователя или фоновой обработки. vLLM и SGLang рассчитаны на видеокарту.


## Источники

- Облачные серверы с GPU — калькулятор — https://selectel.ru/services/cloud/servers/gpu/ (проверено 2026-11-08)
- Выделенные серверы с GPU — готовые конфигурации — https://selectel.ru/services/dedicated/gpu/ (проверено 2026-11-08)
- Калькулятор цен — облачные серверы Standard — https://selectel.ru/prices/calculator/ (проверено 2026-11-08)
- Dedicated Inference — каталог моделей — https://selectel.ru/services/dedicated-inference/ (проверено 2026-11-08)
- Dedicated Inference — описание сервиса — https://docs.selectel.ru/dedicated-inference/about/about-dedicated-inference/ (проверено 2026-11-08)
- Оплата облачных серверов — документация — https://docs.selectel.ru/cloud-servers/about/payment/ (проверено 2026-11-08)
- Резервирование ресурсов и GPU — FAQ миграции — https://docs.selectel.ru/migrations/migrate-to-cloud-servers/faq-cloud-servers-migration/ (проверено 2026-11-08)
- vLLM — запуск в Docker — https://docs.vllm.ai/en/stable/deployment/docker.html (проверено 2026-11-09)
- vLLM — параметры движка (gpu-memory-utilization) — https://docs.vllm.ai/en/stable/configuration/engine_args.html (проверено 2026-11-09)
- vLLM — команда vllm bench serve — https://docs.vllm.ai/en/latest/cli/bench/serve.html (проверено 2026-11-09)
- SGLang — установка и Docker-образ — https://docs.sglang.io/get_started/install.html (проверено 2026-11-09)
- llama.cpp — llama-server, параметры — https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md (проверено 2026-11-09)
- Ollama — FAQ (OLLAMA_HOST, OLLAMA_NUM_PARALLEL) — https://docs.ollama.com/faq (проверено 2026-11-09)
