К содержанию
Siberian V

Как выбрать VPS: 7 параметров, которые важнее цены

Как выбрать VPS: схема из семи параметров сервера: процессор, память, диск, виртуализация, сеть, бэкапы, поддержка

У двух серверов в карточке провайдера одинаковые цифры: 2 ядра, 4 ГБ памяти, 40 ГБ на диске. Первый спокойно держит сайт с базой. На втором страницы то открываются за долю секунды, то думают по три, потому что ядра на деле общие с десятком соседей, а диск упирается в лимит операций. Ниже разобрано, что смотреть в условиях до оплаты, о чём спросить поддержку и какими командами проверить сервер в первый час, пока от него ещё легко отказаться.

Что такое VPS, если коротко

VPS (virtual private server, у российских провайдеров чаще VDS) называют виртуальную машину на чужом физическом сервере. У вас свой IP-адрес, root-доступ и своя операционная система, в которую можно ставить что угодно. Само железо вы делите с другими клиентами провайдера, его режет на части программа-гипервизор.

С виртуальным хостингом VPS расходится в свободе. На хостинге вам дают папку под сайт и панель, а версию PHP и набор модулей выбирает провайдер. С выделенным сервером расходится в том, что машина не ваша целиком: она дешевле и появляется за пару минут, зато скорость зависит от соседей и от того, сколько клиентов посадили на один хост.

Поэтому цифры в карточке задают потолок. Сколько из него вы получите, зависит от провайдера, и почти всё это можно проверить самому.

Сначала задача, потом сервер

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

Прикиньте минимум на сейчас и на полгода вперёд: ядра, память, место. Конфигурацию обычно можно поднять позже без переустановки системы, хватит перезагрузки. Уменьшить диск многие провайдеры не дают, поэтому с ним разумно начинать с меньшего и расширять, когда понадобится.

7 параметров и как их проверить

Сначала сводная таблица, подробности по каждому пункту идут после неё. Команды рассчитаны на Debian и Ubuntu, на других дистрибутивах они те же, меняется только менеджер пакетов.

ПараметрЧто выяснить до оплатыЧем проверить на сервереТревожный знак
1. ПроцессорВыделенные или общие ядра, модель CPUnproc, lscpu, vmstat 1 10Steal time не ноль в спокойные часы
2. ПамятьОбъём, закреплена ли она за машиной, есть ли swapfree -h, swapon --showДоступно заметно меньше заявленного
3. ДискNVMe, SSD или HDD, лимит IOPSdf -h, тест fioСлучайное чтение на уровне жёсткого диска
4. ВиртуализацияKVM или контейнер (OpenVZ, LXC)systemd-detect-virtКонтейнер, когда нужен Docker или своё ядро
5. Сеть и ЦОДГород, скорость порта, квота трафика, IPv4 и IPv6, открыт ли 25-й портping, mtr, ip -br addrПотери пакетов на конечном адресе
6. БэкапыЕсть ли автокопии, где лежат, как восстановитьСделать снапшот и откатиться на нёмКопии в том же хранилище, что и сервер
7. Поддержка и аварийный доступКонсоль в браузере, rescue, свой ISO, SLAТехнический вопрос в тикетОтвет шаблоном или через сутки

1. Процессор: сколько ядер достанется на деле

vCPU в карточке означает поток физического процессора, который гипервизор отдаёт вашей машине по очереди с другими. Если провайдер раздал на хосте больше виртуальных ядер, чем там есть физических (это называют оверселлингом), в часы нагрузки машина ждёт своей очереди. Изнутри сервера это видно как steal time: доля времени, когда ядро было нужно вам, а гипервизор отдал его соседу.

nproc
lscpu | grep -E 'Model name|^CPU\(s\)|Hypervisor'
vmstat 1 10

Последний столбец st у vmstat и поле st в строке %Cpu(s) у top показывают steal в процентах. Без нагрузки там должен быть ноль или почти ноль. Если цифра держится и в тихое время, свободных ядер на этом хосте нет, а под нагрузкой станет хуже. Смотрите несколько раз за сутки: вечером соседи активнее, чем утром.

Выделенные ядра (dedicated CPU) обычно стоят дороже общих. Сайту-визитке хватит и общих, а вот на базе данных или сборке проектов разница видна сразу.

2. Память: что останется после системы

Оперативная память у виртуальной машины обычно закреплена за ней. В контейнерах бывает иначе: часть провайдеров показывает «гибкий» объём, который доступен, пока он свободен на хосте. Чистая Debian или Ubuntu без сервисов занимает немного, но база, PHP-FPM и пара контейнеров Docker быстро забирают гигабайт-другой.

free -h
swapon --show

Смотрите на столбец available: столько получит новый процесс. Если swap нет, а памяти впритык, на пике ядро начнёт завершать процессы (OOM killer), и чаще всего первой падает база. Swap-файл можно сделать за минуту, но на медленном диске он только прячет нехватку памяти.

Память поднимают чаще всего остального. Если колеблетесь между двумя конфигурациями, берите ту, где её больше, а процессор подбирайте по задаче.

3. Диск: тип, объём и лимит операций

Слово NVMe в карточке относится к хранилищу хоста, а не к вашей доле в нём. Провайдеры ограничивают число операций ввода-вывода в секунду (IOPS) на каждую машину, и на младших конфигурациях этот потолок бывает низким. Для сайта с базой он значит больше объёма: база читает и пишет маленькими кусками в разные места диска.

Случайное чтение блоками по 4 КБ проверяет утилита fio. Тест создаёт файл на 1 ГБ, после проверки его нужно удалить:

apt install fio
fio --name=rand4k --filename=/root/fio.test --size=1G --rw=randread --bs=4k \
    --direct=1 --ioengine=libaio --iodepth=32 --runtime=30 --time_based
rm /root/fio.test

В выводе ищите строку read: IOPS=. У жёсткого диска счёт идёт на сотни операций в секунду, у SSD на тысячи и десятки тысяч. Если «NVMe» выдаёт цифры уровня HDD, на машине жёсткий лимит. Спросите поддержку о нём до того, как переносить проект.

Свободное место показывает df -h. Команда lsblk тоже покажет диски, но поле ROTA внутри виртуальной машины часто ничего не говорит о реальном типе носителя, так что верить лучше fio.

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

Под словом VPS продают два разных устройства. KVM, а также VMware, Hyper-V и Xen дают полноценную виртуальную машину со своим ядром: можно поставить любую систему, загрузить модуль ядра, запустить Docker, тонко настроить сеть. OpenVZ и LXC устроены как контейнеры: ядро у них общее с хостом, его версию и модули выбирает провайдер. Контейнеры легче и обычно дешевле, но Docker, свои правила nftables и часть сетевых настроек в них могут не заработать или потребуют помощи поддержки.

systemd-detect-virt

Команда печатает kvm, microsoft, vmware или xen для виртуальных машин и openvz или lxc для контейнеров. Если тип виртуализации в условиях не указан, задайте этот вопрос поддержке до оплаты.

5. Сеть и расположение ЦОД

Город дата-центра задаёт нижнюю границу задержки. Свет в оптоволокне проходит около 200 тысяч километров в секунду, поэтому каждые 100 км расстояния добавляют примерно 1 мс к пингу туда и обратно. Это физический минимум: кабель прокладывают в обход, и каждый маршрутизатор на пути добавляет своё. В таблице посчитано расстояние по прямой и минимальный пинг. Цифры расчётные, реальный пинг будет выше.

ОткудаДо МосквыДо Франкфурта
Москвана месте≈ 2 020 км, от 20 мс
Краснодар≈ 1 200 км, от 12 мс≈ 2 320 км, от 23 мс
Екатеринбург≈ 1 420 км, от 14 мс≈ 3 430 км, от 34 мс
Новосибирск≈ 2 810 км, от 28 мс≈ 4 810 км, от 48 мс
Владивосток≈ 6 420 км, от 64 мс≈ 8 280 км, от 83 мс

Для сайта разница в 20 или 30 мс почти незаметна, браузер всё равно тратит больше на загрузку картинок и скриптов. Для удалённого рабочего стола, терминала по SSH и всего, что отвечает на каждое нажатие клавиши, её чувствуешь.

Кроме города, в условиях сети ищите четыре вещи:

Отдельно о стране. Если сайт собирает персональные данные граждан России (например, через форму регистрации), часть 5 статьи 18 закона № 152-ФЗ требует записывать и хранить их в базах на территории России (текст закона). Учтите это до выбора площадки, детали обсудите с юристом.

Задержку и потери проверяют с той стороны, где будут ваши пользователи. Запустите со своего компьютера или попросите знакомых из нужного города:

ping -c 20 <адрес сервера>
mtr -rwc 50 <адрес сервера>

В отчёте mtr смотрите на столбец Loss% у последней строки. Потери на промежуточных узлах часто означают лишь то, что маршрутизатор отвечает на проверочные пакеты в последнюю очередь. Потери на конечном адресе уже говорят о проблеме.

6. Бэкапы: снапшот ещё не копия

Снапшот фиксирует состояние диска на определённый момент и обычно лежит в той же системе хранения, что и сервер. Он выручит после неудачного обновления, но пропадёт вместе с сервером, если сломается само хранилище или аккаунт закроют. Резервная копия хранится в другом месте, и из неё можно подняться, даже если исходного сервера уже нет.

Что выяснить у провайдера:

Правило 3-2-1 работает и для VPS: три копии данных, на двух разных носителях, одна из них вне площадки. Небольшому проекту хватит ежедневного дампа базы и файлов в объектное хранилище у другого провайдера. И хотя бы раз поднимите сервер из копии на тестовой машине: пока вы этого не сделали, вы не знаете, рабочий ли у вас бэкап.

7. Поддержка, консоль и SLA

Однажды сервер перестанет отвечать по SSH: хватит ошибки в правилах файрвола или диска, забитого логами. Тогда выручают три вещи в панели провайдера:

Поддержку проверяют до переноса проекта. Задайте технический вопрос (какая виртуализация, есть ли лимит IOPS, открыт ли 25-й порт) и посмотрите, сколько ждать и отвечает ли живой инженер по существу.

Цифры SLA легко пересчитать в минуты. 99,9 % доступности за 30-дневный месяц оставляют до 43 минут простоя, 99,95 % дают около 22 минут, у 99,99 % остаётся примерно 4 минуты. Как правило, SLA описывает компенсацию за превышение, обычно зачислением на баланс, а не обещание, что сервер не упадёт. Часто компенсацию нужно запросить самому.

Первый час на новом сервере

У многих провайдеров есть почасовая оплата или пробный период. Используйте его, чтобы прогнать проверки по порядку, пока проекта на машине ещё нет:

Как выбрать VPS: порядок проверки сервера в первый час: система, процессор, диск, сеть, снапшот, поддержка
  1. Система и ресурсы: systemd-detect-virt, nproc, free -h, df -h. Сверьте с карточкой.
  2. Процессор: vmstat 1 10, вечером повторите.
  3. Диск: тест fio на 30 секунд, тестовый файл удалите.
  4. Сеть: ping и mtr с вашей стороны и со стороны пользователей.
  5. Бэкап: сделайте снапшот, поменяйте любой файл, откатитесь и убедитесь, что файл вернулся.
  6. Поддержка: вопрос в тикет, засеките время ответа.

Если на каком-то шаге результат расходится с описанием, у вас ещё есть время сменить площадку без переезда.

Что не видно в стоимости из карточки

Две конфигурации с одинаковой суммой в месяц часто расходятся, когда к ней добавляются дополнительные строки. Перед сравнением выпишите, что у каждого провайдера оплачивается отдельно:

Сложите эти строки для своей задачи, и сравнение станет честным. Дешёвая машина, к которой пришлось добавить адрес, копии и ядра, нередко выходит дороже той, где всё это уже было.

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

Чем VPS отличается от VDS?

На практике ничем: оба названия означают виртуальный сервер с root-доступом и своей системой. Иногда VDS называют машины на KVM, а VPS называют контейнеры, но единого правила на рынке нет. Тип виртуализации проверяют командой systemd-detect-virt или спрашивают у провайдера.

Чем снапшот отличается от резервной копии?

Снапшот фиксирует состояние диска и обычно лежит в той же системе хранения, что и сервер. Он выручит после неудачного обновления, но не после сбоя хранилища. Резервная копия хранится в другом месте и восстанавливается, даже если исходного сервера уже нет. Нужны оба.

Как понять, что соседи по хосту отнимают процессор?

Посмотрите steal time: столбец st в выводе vmstat 1 10 или поле st в строке %Cpu(s) у top. Если без нагрузки там стабильно не ноль, физических ядер на хосте не хватает, и в часы пик сервер будет отвечать медленнее.

Где держать сервер, если пользователи в России?

Если сайт собирает персональные данные граждан России, закон требует записывать и хранить их в базах на территории страны, поэтому такой проект держат в российском ЦОД. Европейская площадка, например во Франкфурте, добавляет к пингу из Москвы не меньше 20 мс по физике оптоволокна и подходит проектам с международной аудиторией или без персональных данных.