Выбирая хостинг, мы смотрим на шесть вещей, именно в таком порядке: на какой CPU попадёт нагрузка и насколько быстро работает одно его ядро, во что превращается каждый "безлимит" на странице после чтения условий, говорит ли страница статуса правду в плохой день, кто и как восстановит ваши данные, до какой части машины вы можете дотянуться, никого не спрашивая, и отвечает ли человек, когда вы пишете. Цена идёт после всего этого, потому что дешёвый тариф, не проходящий по любому из шести пунктов, не дешёвый.
Мы ведём платформу RE:NODE - оркестрацию, которая выдаёт, масштабирует и восстанавливает серверы клиентов, игровую, VDS, web-, database- и storage-линейки, а также мониторинг и автоматизацию бэкапов вокруг них. Это даёт неприятный взгляд на то, как хостинг продаётся и как он работает на самом деле. Большая часть написанного ниже известна операторам, а на странице тарифа не указана. Это относится к любому хосту, включая нас, и кое-что намеренно нелестно для небольших провайдеров вроде нашего.
Есть и более короткая версия в виде чек-листа: как выбрать хостинг игровых серверов. Здесь - рассуждения, которые за ней стоят.
Почему спецификация лжёт умолчанием#
Страница тарифа написана для сравнения, поэтому в ней перечислено то, что легко сравнивается: гигабайты RAM, гигабайты диска, число ядер, цена. Ничто из этого не ложь. Проблема в том, что в ней отсутствует, и изнутри могу сказать: умолчания не случайны.
RAM легко продавать и легко честно отдавать, потому что память либо есть, либо нет. С размером диска то же самое. Скользко становится с ядрами: "2 vCPU" не говорит ничего о том, какой это CPU, насколько он стар, как быстро работает один поток и сколько других клиентов стоит в очереди на тех же физических ядрах. Ещё скользче с трафиком. А то, что определяет, останетесь ли вы, - бэкапы, доступ, поддержка, что происходит в три часа ночи - на странице тарифа почти не встречается.
Поэтому итоговое правило простое: цифры на странице - нижняя граница того, что нужно знать, а не ответ. Всё ниже - о вопросах, на которые эти цифры не отвечают.
CPU: поколение и скорость одного потока важнее числа ядер#
Это самая непонятая вещь в хостинге, и для игровых серверов она важнее всего.
Большинство игровых серверов выполняют главную работу в одном потоке. Тик симуляции - движение сущностей, игровая логика, решение о том, что каждый игрок увидит дальше - идёт в главном потоке, а остальные ядра помогают с сетью, загрузкой чанков, сохранением и подобным. Minecraft - известный пример, но шаблон широк: когда сервер лагает, обычно одно ядро загружено на 100%, а остальные простаивают. Это подробно разобрано в статье как читать загрузку CPU игрового сервера, а требования игровых серверов к CPU разбирают игру за игрой.
Что это значит для выбора хоста:
- Более новый CPU с высокой частотой обычно побеждает более старый с большим числом ядер. Производительность на такт между поколениями сильно выросла, поэтому "3,0 ГГц" на CPU многолетней давности и "3,0 ГГц" на свежем - разная скорость.
- Многоядерные серверные чипы отлично справляются с множеством параллельных дел и нередко посредственны в одном быстром деле. Это правильный компромисс для хоста, упаковывающего веб-приложения. Для одного загруженного игрового сервера это неправильный компромисс.
- "vCPU" обычно означает один аппаратный поток, а не одно физическое ядро. Два vCPU могут быть двумя hyper-threads одного ядра, а это меньше двух полноценных ядер, когда заняты оба.
Вопрос, который стоит задать любому хосту: "на каком CPU работает этот тариф?" Хороший ответ называет модель. Приемлемый говорит: "зависит от ноды, вот модели, которые мы используем". Уклончивый - "процессоры корпоративного класса" - значит, что они предпочли бы, чтобы вы не знали. Справедливости ради, не все хосты могут обещать модель, потому что ноды заменяются. Но они могут сказать, что стоит в парке сегодня.
В RE:NODE линейка VDS называет свой CPU (Intel i9-9900K), а в общих линейках показатель CPU в тарифе - процент от одного ядра, применяемый как жёсткий лимит: 250 означает 2,5 vCPU ограниченной доли, а не 2,5 ядра, за которые можно выходить в burst. Сервер, упёршийся в лимит, работает медленно, но его за это не приостанавливают. Модель для общих нод мы не публикуем, так что если это важно, спросите и нас.
Как проверить, что вы получили
На VDS есть shell, так что посмотрите:
$ lscpu | grep -E 'Model name|^CPU\(s\)|Thread'$ sysbench cpu --threads=1 --time=30 run$ vmstat 1 10Первая строка показывает модель и число потоков. Запуск sysbench с одним потоком даёт число событий в секунду, которое можно сравнивать между хостами: запускайте на каждом кандидате одинаково. В vmstat смотрите столбец st: steal time - это CPU, который ваша виртуальная машина хотела, а гипервизор отдал другому. Несколько процентов время от времени - норма на общем железе. Steal, держащийся высоко при низкой собственной нагрузке, означает переполненный хост, а что с этим можно и нельзя сделать, объясняет статья общий CPU и шумные соседи.
В игровой панели shell обычно нет, но /proc/cpuinfo хоста нередко виден из контейнера, а график CPU в консоли относительно лимита показывает, упираетесь ли вы в купленную долю.
Что значит "безлимит"#
С точки зрения оператора ничего безлимитного нет. У каждого ресурса, с которым мы работаем, есть физический потолок: пропускная способность канала, скорость диска, inode, электропитание. Когда в тарифе написано "безлимит", это значит одно из трёх, и нужно знать, какое именно.
| На странице | Что это обычно значит | О чём спросить |
|---|---|---|
| Безлимитный трафик | Не тарифицируется по ГБ, действует fair use | Что происходит на границе fair use? |
| Безлимитные слоты | Число слотов не ограничено программно | Сколько вытянут CPU и RAM? |
| Безлимитный диск или сайты | Ограничено inode, I/O или числом файлов | Где предел по inode или I/O? |
"Unmetered" - честное слово для трафика: вас не тарифицируют за гигабайт. Это не обещание, что вы можете месяц насыщать общий канал. У каждого хоста с unmetered-тарифом есть точка, в которой чей-то трафик начинает вредить другим клиентам, и единственный настоящий вопрос - говорят ли вам, где она и что происходит при её достижении: ограничение скорости, письмо, приостановка. Наша формулировка: unmetered значит "не тарифицируется по гигабайту", а не "разрешение насыщать общий канал", и что это означает на практике, разобрано в статье трафик и fair use.
"Безлимитные слоты игроков" на игровом сервере раздражают больше всего, потому что формально это правда, а практически бессмысленно. Сколько игроков поместится, определяют игра, CPU и RAM, а не число в панели. Хост, рекламирующий безлимитные слоты на небольшом тарифе, продаёт число, которым нельзя воспользоваться.
Наш тест: если в тарифе написано "безлимит", мы ищем в условиях использования "fair use", "acceptable use", "excessive" и "inode". Что бы там ни говорилось, это и есть настоящий тариф. Если в условиях нет ничего, лимит всё равно существует - просто его применяет тот, кто сегодня на смене, по своему усмотрению и без предупреждения.
Как читать страницу статуса#
У каждого хоста теперь есть страница статуса, и почти всегда она зелёная. Одно это говорит очень мало. Вот на что смотрим мы.
- Кто измеряет. Страница статуса, питаемая автоматическими проверками из-за пределов сети хоста, ценнее той, которую правят вручную задним числом. Страница с ручной правкой зелёная, пока человек не решит, что она не должна быть зелёной.
- Насколько она детальна. Один баннер "Все системы работают" на всю компанию скрывает то, что ваша нода может лежать, пока все остальные работают. Компоненты по нодам или сервисам честнее.
- История. Прокрутите назад. Страница без инцидентов за год либо описывает удивительно удачную эксплуатацию, либо не обновляется. У настоящей инфраструктуры бывают плохие дни, и честные страницы их показывают.
- Что написано в заметках об инциденте. "Мы разбираемся", а затем "решено" без чего-либо между ними ничему не учит. Заметки, в которых сказано, что сломалось, что затронуто и что изменилось потом, показывают, как думает команда.
- Где она размещена. Если страница статуса живёт на той же инфраструктуре, о которой сообщает, она падает именно тогда, когда нужна.
О процентах доступности: они осмысленны только с указанием интервала измерения и определения рядом. 99,9% за 30-дневный месяц допускает примерно 43 минуты простоя; 99,99% - около четырёх. Если проверка идёт раз в пять минут, всё короче может остаться незамеченным. А SLA обычно означает частичный кредит на счёт, а не возврат вашего простоя; прежде чем впечатляться числом, прочтите, какова компенсация.
Для справки: страница статуса RE:NODE замеряет доступность каждые пять минут, и мы не публикуем ни процент доступности, ни SLA. Лучше сказать это прямо, чем печатать цифру. Взвешивайте это так же, как для любого хоста.
Бэкапы и кто их восстанавливает#
Здесь у нас самые сильные взгляды, потому что автоматизация бэкапов - большая часть работы платформы и потому что разрыв между "мы делаем бэкапы" и "вы можете вернуть свои данные" - место, где рождается большая часть разочарований в хостинге.
Хост может подразумевать под "бэкапами" две разные вещи:
- Бэкапы платформы - хост копирует свои диски, чтобы восстановить машину при сбое железа. Обычно вы их не видите, не выбираете, что в них входит, и не можете сами восстановить из них один файл. Они защищают способность хоста пересобрать систему, а не вашу способность отменить ошибку.
- Бэкапы клиента - копии вашего сервера, которые вы можете создавать, планировать, восстанавливать и скачивать.
Нужно знать, какой из них входит в тариф, и вам нужен второй. Затем нужны ответы на эти вопросы:
- Можно ли восстановить самому или нужно подать тикет и ждать?
- Можно ли скачать, чтобы копия существовала полностью вне этого хоста?
- Где он хранится? Бэкап на том же диске, что и защищаемые данные, - удобство, а не бэкап.
- Что происходит с бэкапами, когда я отменяю тариф или удаляю сервер?
- Восстанавливал ли кто-нибудь его недавно?
Последний вопрос важнее всего. Как гласит наш девиз, бэкап, который никто не восстанавливал, - гипотеза. Мнение о проверке восстановления до того, как оно понадобится, у нас твёрдое, оно изложено в проверка восстановления до того, как оно понадобится и бэкапы, которые действительно восстанавливаются.
В RE:NODE у каждого тарифа есть слоты бэкапов: по требованию или по расписанию, восстановление кнопкой, скачивание, блокировка от ротации, хранение вне машины, которую они защищают. Удаление сервера удаляет его бэкапы, включая заблокированные - именно такую деталь стоит искать у любого хоста, потому что люди узнают её не лучшим способом. Отдельно платформа делает ночные бэкапы, копируемые на отдельное железо. Ни то, ни другое не заменяет копию, которую вы храните сами, и то же самое можно сказать о бэкапах любого хоста, включая бэкапы RE:NODE.
Доступ к панели, файлам и консоли#
Вопрос в том, до какой части собственного сервера вы можете дотянуться, никого не спрашивая. Чем меньше, тем больше каждая мелкая проблема превращается в тикет и тем труднее уйти.
Минимум, приемлемый для нас для игрового сервера или хостинга приложений на панели:
- Живая консоль с сырым нефильтрованным выводом и командной строкой. Если хост показывает только причёсанный лог или значок "сервер работает", вы сами ничего не диагностируете.
- Файловый менеджер и SFTP. Файловый менеджер - для быстрых правок; SFTP - способ перенести целый мир, сборку модов или сайт туда и обратно. Отсутствие SFTP - тревожный признак само по себе.
- Команда запуска или хотя бы её переменные. Рано или поздно понадобится флаг запуска, опция JVM или другая ветка.
- Графики ресурсов относительно лимитов, чтобы видеть, упираетесь ли вы в долю CPU или в потолок памяти.
- Управление тем, кто ещё получает доступ, с правами уже, чем "всё".
Для VDS минимум - root, способ переустановки и какая-то внеполосная консоль (VNC или serial) на случай, когда вы заперли себя правилом firewall. Спросите, что вы получите, если SSH перестанет отвечать. "Откройте тикет" - слабый ответ.
Здесь прячется и вопрос выхода. Можно ли забрать все свои данные в обычном формате без помощи хоста? Если да, плохой хост стоит вам выходных. Если нет, он стоит столько, сколько он решит.
Что панель RE:NODE даёт каждому тарифу без разделения на уровни: нефильтрованную живую консоль с командной строкой, файловый менеджер, SFTP с учётными данными на каждый сервер, а не на аккаунт, вкладку Startup для игровых и переменных окружения, графики CPU, памяти и диска относительно лимитов и субпользователей с детальными правами. Она построена на Pterodactyl и Wings с нашей панелью поверх, так что кто знаком с Pterodactyl, увидит знакомую форму - что такое Pterodactyl рассказывает об этом.
Поддержка, до которой можно достучаться#
Чего со страницы тарифа не узнать никак - какова поддержка, а именно это решает, останетесь ли вы. Хостинг - бизнес поддержки с прилагающимися серверами.
На что стоит смотреть:
- Больше одного канала и хотя бы один, оставляющий письменный след. Система тикетов, где вложения остаются приватными, лучше публичного канала в Discord для всего, что касается доступов или логов.
- Чёткое заявление о том, когда люди действительно на связи. "Поддержка 24/7" у небольшого хоста часто означает "кто-то получает уведомление". Это не нечестно, но это не то же самое, что человек на смене. Лучше бы хост называл свои реальные часы.
- Ответы, написанные тем, кто прочитал вопрос. Вставленная ссылка на базу знаний в ответ на конкретный вопрос - признак команды, сортирующей по ключевым словам.
- Умеет ли поддержка делать, а не только передавать. Может ли отвечающий восстановить бэкап, открыть порт, перенести сервер? Или он заводит внутренний тикет и ждёт инженера?
Вот неудобное наблюдение со стороны оператора: небольшие хосты часто лучше в поддержке, чем крупные, потому что отвечающий нередко сам писал код, и хуже в покрытии, потому что их меньше. У крупных обычно наоборот. Решите, что вам нужно. Хобби-серверу можно подождать до утра; платному сообществу или бизнес-приложению, возможно, нельзя.
Поддержка RE:NODE - это тикет из панели (он доходит до всех сотрудников, вложения приватны), Discord и email. Мы не заявляем круглосуточного дежурства, и хосту нашего размера, который его заявляет, мы бы не доверяли.
Проверка хоста в первую неделю#
За первую неделю на хосте узнаёшь больше, чем из любого количества отзывов. Считайте первый платёж стоимостью теста и проводите его намеренно. Если хост предлагает короткий срок, берите его.
| Когда | Проверка | Как выглядит успех |
|---|---|---|
| День 1 | Маршрут от ваших игроков | Низкий стабильный ping и мало потерь в mtr |
| День 1 | Бенчмарк CPU и диска | Цифры близки к другим хостам того же уровня |
| Дни 1-7 | Нагрузка в ваши часы пик | Нет steal и замедления в загруженное время |
| День 2 | Вопрос в поддержку | Конкретный ответ от человека |
| День 3 | Бэкап и восстановление | Вы восстанавливаете и скачиваете его сами |
| День 5 | Экспорт данных | Всё выгружается по SFTP или дампом |
Проверка маршрута важна в первую очередь, потому что никакой CPU не исправит плохой путь между машиной и вашими игроками. Запускайте её оттуда, где находятся ваши игроки, а не там, где находитесь вы:
$ mtr -rwc 100 203.0.113.10$ fio --name=rand --rw=randread --bs=4k --size=1G --iodepth=32 \ --ioengine=libaio --direct=1 --runtime=30 --time_basedАдрес здесь - пример из документации, подставьте адрес своего сервера. Чтение traceroute и mtr объясняет, как читать вывод, и самую частую ошибку: потеря на промежуточном хопе, не продолжающаяся до последнего хопа, обычно означает, что маршрутизатор снижает приоритет проб, а не реальную потерю.
Затем нагрузите сервер так, как будете им пользоваться, в те часы, когда будете им пользоваться. Машина, хорошо показавшая себя в бенчмарке в десять утра во вторник и ползущая в субботний вечер, имеет проблему с ёмкостью, которую один бенчмарк не покажет. Повторите однопоточный запуск sysbench в разное время и сравните.
Задайте поддержке один настоящий вопрос, ответ на который вам уже известен, и отметьте, сколько идёт ответ и верен ли он. Сделайте бэкап, удалите ненужный файл, восстановите, скачайте архив и откройте его на своей машине. Заберите свои данные так, как забрали бы, если бы уходили. Если что-то из этого трудно в первую неделю, в шестой месяц будет хуже.
Тревожные признаки#
Некоторые из них - причина отказаться, другие - повод задавать вопросы жёстче. В список включено только то, что применимо и к нашей собственной платформе.
- Нигде нет модели CPU, а на вопрос о ней уходят от ответа.
- "Безлимит" во всём, и нигде нет раздела fair use.
- Страница статуса, на которой никогда не было инцидентов.
- Заявление о защите от DDoS с большим числом и без объяснения, что фильтруется. Настоящая защита отсекает очевидные объёмные атаки; атаки, похожие на настоящих игроков, отсекать гораздо труднее, и тот, кто обещает остановить всё, продаёт фразу, а не услугу. Подробнее - в статье DDoS-атаки на игровые серверы.
- Нет SFTP, нет сырой консоли или бэкапы восстанавливаются только через тикет.
- Нет способа экспортировать данные или экспорт заперт за отменой тарифа.
- Пожизненные тарифы или цены настолько ниже остальных, что арифметика не сходится. Железо, электричество и трафик стоят одинаково для всех на данном рынке; тариф ниже этого кем-то субсидируется - переподпиской, коротким сроком жизни или обоими.
- Условия, позволяющие хосту приостановить вас за использование оплаченных ресурсов. Работа на 100% вашей доли CPU должна делать сервер медленным, а не удалять его.
- Давление, чтобы вы купили длинный срок вперёд, прежде чем что-либо проверили.
Ничто из этого не доказывает, что хост плох. Несколько признаков вместе - обычно доказывают.
Компромиссы, которые мы сделаем снова#
Несколько мнений, сформулированных прямо, на основе работы такой платформы.
Мы выберем хост, который признаёт свои пределы, а не скрывает их. У каждого хоста есть потолок по трафику, график поддержки с пробелами, расположение, подходящее одним игрокам и неподходящее другим. Те, кто записывает это, - те, под кого можно планировать. RE:NODE работает в одной локации, Германии, на оборудовании, которым мы управляем: это правильный ответ для игроков в Европе и неправильный для далёких, и лучше, чтобы вы знали это до оплаты.
Мы выберем меньше функций и больше доступа. Панель с честной консолью, SFTP и настоящими бэкапами лучше панели со сотней кнопок в один клик и без shell.
Копию всего важного мы всегда храним на чужой инфраструктуре. Не потому, что хосты небрежны, а потому, что отказ, от которого вы защищаетесь, может быть самим хостом: ошибка в биллинге, закрытый аккаунт, компания, прекратившая работу.
И мы проверим до обязательств. Любой хост, включая наш, на своём сайте выглядит лучше, чем в три часа ночи. Первая неделя - время узнать, какие выглядят одинаково.
Если хочется взгляда шире - какой сервер вообще арендовать, начните со статьи VPS, VDS и выделенный сервер.
FAQ#
Всегда ли большее число ядер лучше для игрового сервера?
Нет. Большинство игровых серверов упираются в скорость одного ядра, потому что главный цикл симуляции идёт в одном потоке. Тариф с меньшим числом ядер на более новом CPU с высокой частотой обычно лучше потянет загруженный игровой сервер, чем больше ядер на старом или многоядерном чипе. Дополнительные ядра помогают с модами, плагинами, генерацией чанков и запуском нескольких серверов рядом.
В чём разница между unmetered и безлимитным трафиком?
Unmetered значит, что вас не тарифицируют за переданный гигабайт. "Безлимитный" - маркетинговое слово для того же, и его нельзя читать как "потолка нет вообще": у каждого хоста есть общий канал и граница fair use. Полезный вопрос - что делает хост, когда вы до неё доходите: ограничивает скорость, предупреждает или приостанавливает.
Стоит ли доверять гарантии доступности 99,9%?
Считайте это заявлением о компенсации, а не о надёжности. Это допускает около 43 минут простоя за 30-дневный месяц, интервал измерения определяет, что считается, а компенсация обычно - частичный кредит. Страница статуса с реальной историей инцидентов говорит о работе хоста больше, чем процент.
Достаточно ли одних бэкапов хоста?
Это хорошая первая линия и не больше. Убедитесь, что вы можете восстановить и скачать их сами, и храните хотя бы одну свежую копию где-нибудь ещё - на своей машине или в отдельном объектном хранилище. Если проблема в самом аккаунте у хоста, бэкапы, хранящиеся у него, не помогут.
Как долго проверять новый хост перед обязательствами?
Недели обычной работы, включая самые загруженные часы, хватает, чтобы найти большинство проблем: качество маршрута, конкуренцию за CPU в пике, скорость ответа поддержки и то, работают ли восстановление и экспорт на самом деле. Не платите за длинный срок, пока эта неделя не пройдена, даже если так дешевле в месяц.
Небольшой хост рискованнее крупного?
Рискованнее по-другому. У небольшого хоста поддержка чаще от людей, построивших систему, и реже есть дежурные в любой час. У крупного больше покрытия и больше слоёв между вами и инженером. Собственные бэкапы и простой способ экспортировать данные делают любой выбор намного безопаснее.


