В тарифах хостеров встречаются VPS, VDS, KVM, vCPU, NVMe — и не всегда понятно, что за этими словами стоит. Разберём, что вы на самом деле арендуете и как проверить это на сервере за пару минут.

VPS и VDS — одно и то же

VPS (Virtual Private Server) и VDS (Virtual Dedicated Server) — два названия виртуального сервера: часть физического сервера, которая работает как отдельная машина со своей операционной системой, root-доступом и IP-адресом. В России чаще пишут VDS, за рубежом — VPS. Некоторые хостеры разделяют их по-своему (например, называют VDS тарифы с выделенными ядрами), но общего стандарта нет — смотрите на параметры тарифа, а не на название.

От выделенного сервера (dedicated) виртуальный отличается тем, что физическое железо делится между несколькими клиентами. Выделенный сервер целиком ваш, но дороже и дольше разворачивается; виртуальный создаётся за минуты, и его ресурсы можно увеличить без переезда.

Виртуализация: KVM и контейнеры

Как именно делится сервер, зависит от технологии виртуализации.

KVM (полная виртуализация) Контейнеры (OpenVZ, LXC)
Ядро ОС своё у каждого сервера общее с хост-машиной
Какую ОС можно поставить любую: разные дистрибутивы Linux, Windows, свои образы только Linux с ядром хоста
Docker, свои модули ядра, настройки ядра (sysctl) работают часто ограничены или недоступны
Изоляция сильная, на уровне аппаратной виртуализации слабее: общее ядро
Цена для хостера выше ниже — можно плотнее разместить клиентов

KVM (Kernel-based Virtual Machine) — гипервизор, встроенный в ядро Linux. Каждый сервер получает своё виртуальное железо и своё ядро, поэтому внутри работает как обычный компьютер. Большинство современных хостеров продают VPS на KVM; контейнерная виртуализация встречается в самых дешёвых тарифах.

Как проверить, на чём ваш сервер:

systemd-detect-virt

Ответ kvm — полная виртуализация KVM, openvz или lxc — контейнер, none — физический сервер.

vCPU: что такое виртуальное ядро

vCPU — виртуальный процессор, который видит ваша система. Физически это поток (thread) процессора хост-машины, и гипервизор распределяет время процессора между всеми серверами на ней. Важно понимать три вещи:

  • Ядра обычно разделяемые. Хостер рассчитывает, что серверы не нагружают процессор на 100 % одновременно, поэтому продаёт больше vCPU, чем потоков на машине. Это нормальная практика; вопрос — в каком соотношении. При постоянной высокой нагрузке на чужих серверах ваш сервер получит процессорного времени меньше.
  • Модель процессора и частота важнее числа ядер для большинства веб-проектов: два vCPU современного процессора с высокой частотой часто работают быстрее четырёх vCPU старого.
  • Выделенные ядра (dedicated vCPU) закреплены за вашим сервером и не делятся. Они дороже и нужны для постоянной вычислительной нагрузки: сборка, кодирование видео, расчёты.

Как проверить:

nproc                       # сколько vCPU видит система
lscpu | grep -E 'Model name|^CPU\(s\)|Thread'

Признак того, что процессора не хватает из-за соседей, — высокое значение steal (st) в top или vmstat 1: это доля времени, когда ваш сервер был готов работать, но гипервизор отдавал процессор другим. Единицы процентов — норма, постоянные десятки процентов — повод писать в поддержку.

Память: гарантированная и нет

Оперативная память в тарифе на KVM обычно гарантированная: если указано 4 ГБ, вашему серверу выделено 4 ГБ, и их не отдадут соседям. Именно память ограничивает, сколько серверов поместится на физической машине, поэтому её цена в тарифе выше, чем цена ядра.

В контейнерной виртуализации встречается «burst» — память, которую дают, только если она свободна у хоста. На неё нельзя рассчитывать.

free -h

Столбец total — сколько памяти у сервера; available — сколько ещё могут занять программы, не вытесняя других.

Диск: NVMe, SSD и что ещё важно

  • NVMe — SSD, подключённый напрямую к шине PCIe. Быстрее SATA SSD по скорости и особенно по задержкам, что заметно для баз данных.
  • Локальный диск или сетевое хранилище. Локальный NVMe даёт лучшую скорость; сетевое хранилище (Ceph и подобные) — надёжность и переезд между машинами, но с большими задержками.
  • Объём «чистый». Указанный объём — это размер диска сервера; часть займёт сама ОС — несколько гигабайт для Ubuntu Server.
lsblk -d -o NAME,SIZE,ROTA,MODEL   # ROTA 0 — SSD, 1 — жёсткий диск
df -h /

Сеть и IP-адреса

  • Скорость порта (например, 1 Гбит/с) — максимальная скорость подключения сервера; реальная зависит от загрузки сети и маршрута до клиента.
  • Трафик может быть безлимитным, лимитированным по объёму или со снижением скорости после лимита — это всегда стоит прочитать в тарифе.
  • Выделенный IPv4 — свой адрес, на котором можно держать почту, сайт и обратную DNS-запись. IPv6 часто даётся бесплатно целой подсетью.

Что сравнивать в тарифах

  1. Технология виртуализации — для Docker и своих ОС нужен KVM.
  2. Модель процессора и выделенные ли ядра.
  3. Память — гарантированная.
  4. Тип диска (NVMe), локальный или сетевой.
  5. Скорость порта и условия по трафику.
  6. Сколько стоит увеличить ресурсы и можно ли это сделать без переустановки.

Как проверить, что выданное соответствует тарифу, — в статье о тесте производительности VPS. Сколько ресурсов взять под конкретный проект — в статье «Сколько оперативной памяти нужно VPS», где разместить сервер — в сравнении Нидерландов и России; а после покупки сервер стоит сразу настроить по базовому чек-листу.