Большинство советов по выбору мощности для игровых серверов - это одно число без всякого контекста, и поэтому так много людей покупает 16 ГБ для игры, которая упирается в одно ядро процессора, и 1 ГБ для игры, которая через месяц после запуска съедает всю память. Таблица ниже - честная версия: отправная точка по RAM, vCPU, диску и портам для каждой игры из каталога RE:NODE, а следом - объяснение, почему каждому жанру нужно именно то, что нужно, чтобы вы могли двигаться от этого числа вверх или вниз, а не гадать. Если прочитать всего одну строку, пусть будет эта: продаётся память, чаще всего заканчивается одно быстрое ядро, а диск - это ресурс, который тихо отказывает во время обновления в три часа ночи.
Как читать эти числа#
Четыре столбца - четыре разных по природе утверждения, и надёжны они не в равной мере.
RAM - это жёсткий потолок, а не цель. Контейнер с 4 ГБ останавливается на 4 ГБ. Поэтому число в таблице - это объём, с которого стоит начинать серверу этой игры для обычной компании игроков на мире возрастом в несколько недель, с небольшим запасом сверх того, что процесс реально использует. У большинства игр на графике памяти в панели будет занято 60-75%, и это правильно. Сервер, сидящий на 97% лимита, - это один оживлённый вечер до перезапуска ядром.
vCPU сбивает с толку, потому что это доля, а не количество. На хостинге, построенном на Pterodactyl, включая RE:NODE, число CPU - это процент от одного ядра, так что 150 означает 1,5 vCPU, и это жёсткое ограничение, а не обещание полутора физических ядер. Оно даёт две вещи: запас на главном потоке, когда начинается бой, и место для вторичных потоков - сохранения, сети, генерации чанков, сборки мусора - чтобы они работали, не отнимая ресурс у симуляции. Почти ни один игровой сервер не использует больше одного ядра для того, что вас интересует, поэтому 2 vCPU - это не «вдвое быстрее, чем 1», а «одно занятое ядро и место для всего остального».
Диск - это объём, который нужно купить, а не размер загрузки. На нём должны поместиться игра, мир с сохранениями, моды, логи и достаточно свободного места, чтобы следующее обновление скачалось до того, как заменит то, что уже лежит. Держать диск ровно по размеру установки - верный способ провалить обновление.
Порты - сколько выделений нужно серверу. Игровой порт - никогда не вся история: большинству игр нужен отдельный query-порт, чтобы серверные браузеры могли их видеть, а нескольким - третий для RCON, веб-панели администратора или второго шарда. В статье порты игрового сервера простыми словами подробно объяснено, почему сервер может работать идеально и оставаться невидимым.
Требования для каждой игры, которую мы хостим#
Каждая строка - это удобная отправная точка для типичной компании игроков, а не минимум, с которым сервер едва запускается, и не число, придуманное, чтобы продать вам что-то побольше. Название каждой игры ведёт на её тарифы и точные ступени.
| Игра | RAM | vCPU | Диск | Порты |
|---|---|---|---|---|
| 7 Days to Die | 8 GB | 2 | 55 GB | 2 TCP+UDP |
| Abiotic Factor | 6 GB | 1.5 | 35 GB | 2 UDP |
| Arma 3 | 6 GB | 2 | 55 GB | 5 UDP |
| Assetto Corsa | 3 GB | 1.5 | 30 GB | 2 TCP+UDP |
| BeamMP | 3 GB | 1.5 | 15 GB | 1 TCP+UDP |
| Counter-Strike 1.6 | 1 GB | 0.75 | 10 GB | 1 UDP |
| Counter-Strike 2 | 2 GB | 1.5 | 40-60 GB | 2 UDP |
| DayZ | 6 GB | 2 | 35 GB | 3 UDP |
| Don't Starve Together | 2 GB | 1 | 15 GB | 2 UDP |
| Euro Truck Simulator 2 | 2 GB | 1 | 15 GB | 2 UDP |
| Factorio | 2 GB | 1.5 | 10 GB | 1 UDP |
| FiveM | 4 GB | 1.5 | 30 GB | 2 TCP+UDP |
| Garry's Mod | 2 GB | 1 | 15 GB | 1 UDP |
| Insurgency: Sandstorm | 3 GB | 2 | 20 GB | 2 UDP |
| Killing Floor 2 | 4 GB | 1.5 | 40 GB | 3 UDP+TCP |
| Minecraft (Paper) | 4 GB | 1.5 | 30 GB | 1 TCP |
| Palworld | 8 GB | 2 | 40 GB | 2 UDP |
| Project Zomboid | 4 GB | 2 | 25 GB | 3 UDP+TCP |
| RimWorld | 2 GB | 1 | 15 GB | 1 TCP |
| SCP: Secret Laboratory | 5 GB | 1.5 | 20 GB | 2 UDP |
| Satisfactory | 8 GB | 2.5 | 40 GB | 2 TCP+UDP |
| Skyrim Together | 2 GB | 1 | 15 GB | 1 UDP |
| Sons of the Forest | 8 GB | 2 | 50 GB | 3 UDP+TCP |
| Team Fortress 2 | 3 GB | 1.5 | 35 GB | 3 UDP |
| Terraria | 1 GB | 0.75 | 10 GB | 1 TCP |
| The Forest | 4 GB | 1.75 | 25 GB | 3 UDP |
| The Front | 8 GB | 2.5 | 40 GB | 3 UDP |
| The Isle | 8 GB | 2.5 | 35 GB | 3 UDP+TCP |
| Unturned | 3 GB | 1.5 | 15 GB | 2 UDP |
| Valheim | 3 GB | 1.5 | 20 GB | 2 UDP |
Прежде чем перейти к объяснениям, в этой таблице стоит заметить две вещи.
Первая - разброс. Counter-Strike 1.6 хватает гигабайта и доли ядра; Palworld, Satisfactory и The Front нужны восемь гигабайт и два с половиной ядра. Это восьмикратная разница по памяти между играми, которые обе называют себя многопользовательскими серверами для горстки друзей, и объясняется она целиком тем, какой объём мира серверу приходится держать в памяти одновременно.
Вторая - столбцы RAM и vCPU не растут вместе. Counter-Strike 2 и Insurgency: Sandstorm находятся почти внизу по памяти и почти наверху по процессору относительно своей памяти. У The Forest и Abiotic Factor всё наоборот. Более крупный тариф повышает оба показателя, и это нормально, но нужный вам тариф определяется тем из двух, что закончится первым, - а отличить их друг от друга можно за полминуты, как описано в статье CPU или RAM: что тормозит ваш сервер.
Выживание и строительство баз: ограничивает память#
7 Days to Die, Palworld, Project Zomboid, DayZ, Abiotic Factor, The Forest, Sons of the Forest, The Front, The Isle, Satisfactory и Valheim ведут себя внутри одинаково, что бы ни говорили их жанровые ярлыки. Сервер держит мир, который генерируется по мере того, как люди его исследуют, и продолжает его держать. Расход памяти в первый день - это не расход памяти на шестой неделе, и ничто в конфигурации не меняет эту траекторию всерьёз.
Механизм стоит понять, потому что он подсказывает, когда волноваться. Память сервера выживания - это примерно сумма трёх слагаемых: чанки или ячейки, загруженные в данный момент, потому что кто-то рядом с ними; постоянные объекты, которые существуют независимо от того, есть ли кто-то поблизости; и собственный минимум движка. Первое растёт с тем, насколько разбросаны ваши игроки. Второе растёт бесконечно, потому что каждая база, сундук, ферма, труп, машина и брошенный предмет - это постоянный объект, который теперь несёт в себе файл мира.
Отсюда три практических правила:
- Рассчитывайте на карту, а не на число игроков. Четверо игроков, каждый из которых построил базу на расстоянии 3000 метров от других, обходятся куда дороже, чем восемь игроков в одном городе. Это главная причина, по которой серверы, у которых «в прошлом месяце всё было нормально», перестают быть нормальными.
- Ждите роста и планируйте перезапуск. Еженедельный перезапуск по расписанию не лечит утечку памяти, но возвращает сервер к его минимуму, а не к потолку, и в большинстве этих игр разница составляет гигабайт и больше.
- Вайпы и чистка - это инструмент для памяти. Сброс регионов в 7 Days to Die, очистки вроде
EraseAllModDataв Project Zomboid и настройки лутовой экономики DayZ существуют отчасти потому, что альтернатива - файл мира, растущий без предела.
Palworld - крайний случай, и ему посвящена отдельная статья память сервера Palworld: сервер держит всех паллов в каждой базе каждого игрока, в сети он или нет, и значение имеет общее число баз на карте, а не число подключённых людей. Главная статья расходов Valheim - терраформинг, который хранится для каждого изменённого участка земли и никуда не исчезает. The Isle и The Front - это большие карты на Unreal, где один только минимум занимает несколько гигабайт ещё до того, как зашёл первый игрок.
Шутеры и арены: одно быстрое ядро#
Counter-Strike 2, Counter-Strike 1.6, Team Fortress 2, Insurgency: Sandstorm, Killing Floor 2 и SCP: Secret Laboratory - это обратная проблема. Карта фиксированная, небольшая и загружается один раз, поэтому память почти постоянна от первой секунды до последней. Меняется то, сколько работы сервер делает за тик, а их 64 или 128 в секунду.
У тика есть жёсткий бюджет: при 64 тиках у сервера 15,6 мс, чтобы просчитать движение, выполнить регистрацию попаданий, отработать каждый плагин и собрать снимок состояния для каждого подключённого клиента. Если выйти за него, тик опаздывает, и игроки ощущают это как «резиновое» движение и нестабильную регистрацию попаданий, а не как «лаг». Вся эта работа идёт в одном потоке, поэтому помогает только более быстрое ядро или меньший объём работы за тик. Добавление памяти шутеру, который подтормаживает, не меняет ничего. Как читать это число в каждом движке, описано в статье что на самом деле означает tick rate.
На что уходит память из таблицы в этих играх:
- Counter-Strike 1.6 - это двадцатилетний бинарник GoldSrc. Гигабайт с запасом, и он никогда его не использует. Он в списке потому, что тариф должен существовать, а не потому, что игра требовательна.
- Counter-Strike 2 и Team Fortress 2 занимают 1-2 ГБ на полном сервере, а остальное - запас на смену карт, запись демо и плагины. Metamod и CounterStrikeSharp или SourceMod добавляют немного памяти и заметную долю нагрузки на CPU за тик, и именно за ней стоит следить.
- SCP: Secret Laboratory требует больше, чем подсказывает число игроков, потому что раунд - это целый комплекс, симулируемый одновременно, и потому что стандартные фреймворки плагинов тащат за собой среду выполнения .NET.
- Killing Floor 2 - это Unreal 3 с большой установкой, и в её раундах на шесть игроков появляется много ИИ. Нагрузка на CPU приходится на поиск пути у зедов, а не на игроков.
Если вы запускаете любую из этих игр с плагинами, считайте, что плагины - это и есть ваш бюджет CPU. Стандартный сервер Source с 24 игроками почти простаивает. Тот же сервер с сорока плагинами SourceMod, системой рангов на базе данных с синхронными запросами и голосованием за карту в каждом раунде - совсем другая машина.
Песочницы, скриптовые и симуляционные миры#
Остальные игры - неудобная середина, и у них есть одна общая черта: их требования определяются тем, что вы добавляете, а не тем, что поставляется в комплекте.
Minecraft упирается и в память, и в процессор, в пропорции, которую вы выбираете сами. Параметры view-distance и simulation-distance в server.properties напрямую превращают одно в другое: каждый игрок держит загруженным квадрат из 2 x view-distance + 1 чанков по стороне, так что снижение с 10 до 6 убирает около 62% чанков, которые держит каждый игрок. 4 ГБ хватает для комфортного сервера Paper на двадцать игроков со стандартными настройками; тяжёлому модпаку нужно 8 ГБ и больше и совершенно другая конфигурация Java. Подробности - в статьях сколько RAM нужно серверу Minecraft и руководство по оптимизации Paper.
FiveM - это платформа для скриптов с приложенной игрой. Сам серверный бинарник скромен, а вот устанавливаемые ресурсы - нет. Стандартный сервер с горсткой ресурсов доволен 2 ГБ, а полноценный roleplay-фреймворк с двумястами ресурсов, базой данных за ним и включённым OneSync - это машина на 6-8 ГБ с настоящим аппетитом к CPU. Список ресурсов и есть ваш документ с требованиями.
Garry's Mod - та же история, только на Lua. Ванильный сервер-песочница крошечный. DarkRP с шестьюдесятью аддонами и коллекцией из мастерской - нет, и каждый аддон работает в том же главном потоке, что и игра.
Factorio - самый чистый случай упора в процессор в этом списке. Сервер выполняет симуляцию в жёстком такте, 60 обновлений в секунду, и большая фабрика может не выдерживать эту цель даже на быстром ядре, используя меньше гигабайта памяти. Если UPS падает, ответ не в увеличении RAM, а в сокращении числа сущностей.
Terraria, Don't Starve Together, RimWorld, Skyrim Together, Euro Truck Simulator 2, Assetto Corsa и BeamMP - по современным меркам небольшие серверы, и для всех них причина переходить на следующую ступень - моды, а не игроки. Don't Starve Together выделяется тем, что кластер с пещерами - это два серверных процесса, делящих одно выделение, так что закладывайте ресурсы на оба. Стоимость BeamMP - физика, а физика считается на машину, а не на игрока.
Диск и обновление, которое его заполняет#
На диске люди попадаются, и это самый неинтересный ресурс ровно до тех пор, пока он не становится единственным, который имеет значение.
На диске игрового сервера лежат четыре вещи, и только первую обычно имеют в виду:
- Установленная игра, которая для игр на SteamCMD представляет собой загрузку, разраставшуюся с каждым обновлением после релиза.
- Мир, сохранения и их ротируемые резервные копии, которые в играх на выживание сами по себе могут достигать нескольких гигабайт.
- Моды, контент из мастерской, карты и скачанные ресурсы. В Arma 3, DayZ, Garry's Mod и Killing Floor 2 они регулярно превышают базовую установку.
- Свободное место под следующее обновление.
Именно четвёртый пункт ломает серверы. SteamCMD скачивает в тот же том, который обновляет, поэтому для обновления сверх существующей установки нужно свободное место примерно по размеру изменившихся файлов, прежде чем их можно будет подменить. Диск ровно по размеру игры - это диск, на котором следующее обновление провалится, обычно с вводящей в заблуждение ошибкой о пропавшем манифесте приложения. Оставьте свободными 20-30%, и проблема не возникнет. В статье SteamCMD простыми словами рассказано про validate, беты и то, что остаётся после неудачного обновления.
Ещё два факта о диске, которые стоит знать:
- Логи растут. Загруженный сервер Source с подробным логированием или сервер Minecraft с болтливым плагином пишет сотни мегабайт в неделю. Ротируйте их или удаляйте по расписанию. Какие из них стоит хранить, описано в статье логи, которые стоит хранить.
- Резервные копии рядом с миром - это не резервные копии. Каждая игра со встроенной ротацией бэкапов пишет в тот же каталог на том же диске. Они защищают от повреждённого сохранения, но не от удалённого сервера. И они входят в ваш объём диска.
Скорость диска - отдельный вопрос от его размера, и на игровом сервере она важна ровно для одной операции: сохранения. Игра, которая пишет весь мир одним блокирующим проходом, а так работает большинство игр на выживание, замирает на всё время записи. Какие операции это чувствуют, а какие нет, разобрано в статье что на самом деле меняет NVMe.
Порты и протоколы#
Число портов в большой таблице - это количество выделений, которое нужно заложить. А вот реальные значения по умолчанию для игр, где они стабильны и заслуживают внимания:
| Игра | Игровой порт | Другие порты |
|---|---|---|
| Minecraft | 25565 TCP | 25575 TCP для RCON, если включён |
| Terraria | 7777 TCP | нет |
| Valheim | 2456 UDP | 2457 UDP query |
| Counter-Strike 2, TF2, Garry's Mod | 27015 UDP | 27020 UDP SourceTV, 27015 TCP RCON |
| Counter-Strike 1.6 | 27015 UDP | нет |
| Palworld | 8211 UDP | 27015 UDP query, 25575 TCP RCON |
| Project Zomboid | 16261 UDP | 16262 UDP, 27015 TCP RCON |
| 7 Days to Die | 26900 TCP и UDP | 26901-26902 UDP, 8081 telnet |
| Factorio | 34197 UDP | нет |
| Arma 3 | 2302 UDP | 2303-2306 UDP |
| DayZ | 2302 UDP | 27016 UDP query |
| Unturned | 27015 UDP | 27016-27017 UDP |
| Insurgency: Sandstorm | 27102 UDP | 27131 UDP query, 27015 TCP RCON |
| Killing Floor 2 | 7777 UDP | 27015 UDP query, 8080 TCP WebAdmin |
| Don't Starve Together | 10999 UDP | 10998 UDP для шарда с пещерами |
| FiveM | 30120 TCP и UDP | 40120 TCP для txAdmin |
| BeamMP | 30814 TCP и UDP | нет |
| SCP: Secret Laboratory | 7777 UDP | query на том же порту |
Закономерность почти для всех: сама игра говорит по UDP, протокол query обычно тоже по UDP, но на другом номере, а всё административное - RCON, telnet, веб-панель - по TCP. Правило файрвола, открывающее только TCP, - самая частая причина того, что сервер работает, но его нельзя найти, а почему вообще существует такое разделение, объясняет статья TCP и UDP для игровых серверов.
Где такая таблица ошибается#
Четырьмя способами, и честно стоит рассказать обо всех.
Моды обесценивают всё. Каждое число выше - для чистого сервера. Модпак Minecraft, список модов Arma 3, папка ресурсов FiveM или коллекция мастерской Project Zomboid могут удвоить или утроить и память, и нагрузку на CPU, и ни одна таблица в мире не предскажет, во сколько именно. Работает только один метод: установить то, что собираетесь запускать, дать ему нагрузку с настоящими игроками в течение вечера и прочитать графики.
Возраст меняет ответ. Подбор тарифа - не разовое решение для игры с постоянным миром. Правильный тариф для шестого месяца - не тот, что нужен в первую неделю запуска, и поэтому статья когда пора менять тариф написана про симптомы, а не про пороги.
Число игроков - самый слабый предсказатель. Десять игроков, стоящих вместе, обходятся в долю того, что стоят десять игроков, разбросанных по карте. Арифметика по каждой игре и то, почему число слотов в конфиге ничего не обещает, разобраны в статье сколько игроков поместится на сервере.
Версии меняются. Каждая цифра здесь относится к актуальной сборке каждой игры на момент написания. Крупные обновления меняют профиль памяти, порой сильно, и игра, которой было комфортно на 4 ГБ до большого патча с контентом, после него может уже не уместиться. Проверяйте графики после любого обновления, меняющего формат мира.
Ничто из этого не значит, что таблица бесполезна. Это значит, что она - отправная точка, которую вы должны ожидать один раз скорректировать по реальным данным, в ту или другую сторону, и это куда лучше, чем начинать с числа, которое кто-то выдумал для страницы с ценами.
FAQ#
Всегда ли больше RAM лучше для игрового сервера?
Нет. Память сверх того, что использует процесс, не даёт ничего, а на играх с JVM, таких как Minecraft, слишком большая куча даже вредит, удлиняя паузы сборки мусора. Покупайте столько памяти, сколько нужно серверу, плюс запас на самый загруженный час, а остальной бюджет тратьте на CPU, если что-то всё ещё подтормаживает.
Что на самом деле означает 1,5 vCPU?
Жёсткий предел в 150% одного ядра. Сервер может одновременно использовать одно ядро целиком и половину другого, а выше этого его притормаживают, а не позволяют занять больше. Поскольку почти все игровые серверы ведут симуляцию в одном потоке, практический эффект - одно занятое ядро и запас, чтобы сохранение, сеть и сборка мусора шли, не прерывая его.
Сколько диска оставлять свободным?
Примерно 20-30% от выделенного объёма. Большая часть уходит на обновления, которые скачиваются рядом с существующей установкой, прежде чем заменить её, а остальное - на логи и ротацию бэкапов. Сервер, работающий при 95% занятого диска, провалит следующее обновление с ошибкой, в которой ничего не сказано о месте на диске.
Почему серверу для одной игры нужно два или три порта?
Один для игрового трафика, один для протокола query, который читают серверные браузеры и сайты-трекеры, а иногда третий - для RCON, веб-интерфейса администратора или второго шарда мира. Игра работает и с одним открытым первым портом; просто её не видит никто из тех, кто ищет её в списке.
Мой сервер работал нормально, а теперь нет. Что изменилось?
Обычно изменился мир, а не тариф. Игры с постоянным миром накапливают постройки, предметы и исследованную территорию, и всё это нужно хранить или тикать. Проверьте, не выросла ли память в простое за недели и не разошлись ли игроки по карте. И то и другое обычное дело, и ни то ни другое не выглядит как изменение, которое вы сделали сами.
Можно ли начать с малого и перейти на больший тариф позже?
Да, и это правильный подход для всего, кроме запуска, который вы уже разрекламировали. Начните на ступень ниже той, что считаете нужной, понаблюдайте за графиками две недели и переходите выше, если так покажут цифры. В RE:NODE смена тарифа повышает лимиты уже существующего сервера, а не пересобирает его, так что мир, конфиг и адрес остаются на месте.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.