Выделенный сервер Satisfactory замедляется по трём причинам, и ни одна из них не связана с числом игроков. Симуляция фабрики растёт с каждой машиной и каждым предметом на конвейере; вместе с ней растёт сохранение, поэтому каждое автосохранение замораживает игру всё дольше; а сервер должен отправлять каждому игроку состояние всего, что рядом с ним, и в плотной фабрике этого состояния очень много. Память следует за сохранением - 8 GB хватает с запасом для нового мира, зрелой мегабазе нужно 12-16 GB. Исправления - это в основном решения при стройке: меньше машин с разгоном, поезда и дроны вместо грузовиков, хранение в контейнерах, а не на конвейерах, и интервал автосохранения, выбранный осознанно. В этой статье - откуда берётся нагрузка, как понять, какой у вас лаг, и что менять.
Установка и привязка сервера описаны в руководстве по выделенному серверу Satisfactory, а настройки Server Manager - в статье настройки и сохранения сервера Satisfactory. Эта статья начинается там, где фабрика стала достаточно большой, чтобы это ощущалось.
На что тратит время сервер Satisfactory#
Сервер просчитывает всю фабрику. Машины в углу карты, где никто не был несколько дней, по-прежнему производят, конвейеры по-прежнему везут предметы, а поезда ходят по расписанию. В этом и смысл выделенного сервера, и это значит, что стоимость фабрики не зависит от того, где стоят игроки.
Работа делится на четыре части:
- Симуляция фабрики. Обновляется каждая машина, конвейер, разделитель, труба, поезд и транспорт. Это в основном выполняется в одном игровом потоке, так что потолок определяет тактовая частота.
- Репликация. Для каждого подключённого игрока сервер вычисляет, какие объекты рядом изменились, и отправляет их. Игрок, стоящий посреди блока из 300 машин, обходится гораздо дороже, чем игрок посреди поля.
- Сохранение. При каждом автосохранении весь мир сериализуется в один файл
.sav. Время на это растёт вместе с фабрикой. - Управление памятью. Движок периодически чистит память. В большом мире эта очистка - короткое подвисание, которое вы чувствуете.
Более быстрое ядро CPU помогает только с первым пунктом. Со вторым помогают меньшее число игроков в самых плотных местах и сетевые настройки. С третьим - быстрый накопитель и мир поменьше. С четвёртым - больший запас памяти и перезапуски.
Как отличить виды лагов#
| Симптом | Вероятная причина | Что проверить первым |
|---|---|---|
| Все замирают на секунду или больше, по регулярному таймеру | Автосохранение | Совпадает ли с интервалом автосохранения? |
| Производство падает, всё ощущается вялым | Тик фабрики не укладывается в бюджет | График CPU сервера: одно ядро в потолке |
| Откаты только на главной фабрике | Нагрузка репликации рядом с плотными постройками | Прекращается ли, если отойти? |
| Откатывает одного игрока, у остальных нормально | Соединение этого игрока | Его пинг и потеря пакетов |
| Низкий FPS в больших фабриках, сервер в порядке | Отрисовка на клиенте | FPS у каждого игрока |
| Подвисания с каждым днём всё хуже | Рост памяти, паузы на очистку | График памяти относительно лимита |
Четвёртая и пятая строки - вообще не сервер. Игрок, чей ПК рисует три тысячи ламп при 25 кадрах в секунду, назовёт это лагом; так же назовёт его игрок на перегруженном маршруте. Как отличить сетевую проблему от серверной, разобрано в статье задержка, джиттер и потеря пакетов.
Первая строка - самая частая жалоба на зрелом сервере, и именно её чаще всего ошибочно диагностируют как «серверу нужно больше RAM».
Фриз при автосохранении#
В Satisfactory нет инкрементального сохранения. Каждое автосохранение записывает весь мир - каждое здание, каждый предмет на каждом конвейере, каждый транспорт и его маршрут - в один файл, и пока это происходит, игровой поток занят.
Размер сохранения растёт вместе с фабрикой:
| Этап | Типичный размер сохранения | Как ощущается автосохранение |
|---|---|---|
| Начало игры, Tier 1-2 | 1-5 MB | Незаметно |
| Середина игры, поезда и нефть | 10-40 MB | Короткая запинка |
| Поздняя игра, несколько больших площадок | 50-150 MB | Заметный фриз |
| Мегабаза, сотни часов | 150-250 MB+ | Фриз, на который жалуются |
Фриз сокращают три вещи:
- Быстрый накопитель. Запись большая и последовательная. NVMe превращает многосекундный фриз в короткий; статья что на самом деле меняет NVMe честно говорит, в каких случаях это важно, и это один из них.
- Сохранение поменьше. Предметы на конвейерах сохраняются поштучно. Фабрика с длинными конвейерами, забитыми до отказа и упёршимися в тупик, хранит каждый из этих предметов. Если освободить конвейеры, используемые как склад, файл уменьшится.
- Осознанный интервал. Интервал автосохранения в Server Manager по умолчанию - пять минут. Десять вдвое уменьшают частоту, с которой это кто-то замечает, и вдвое увеличивают цену падения. Выберите число, с которым можно жить в обоих смыслах.
Есть и четвёртая вещь, которая не помогает: удаление старых автосохранений ради места на диске. Ротация автосохранений - самая дешёвая защита, которая у вас есть, и каждое из них размером всего с одно сохранение.
Решения при стройке, которые делают фабрику дешёвой#
Самый большой прирост производительности в Satisfactory даёт то, как вы строите, а не настройки сервера. Несколько принципов применимы почти к любой большой фабрике.
Меньше машин, которые делают больше. Power Shards разгоняют машину до 250%, а Somersloop - в 1.0 это усиление производства - умножают выход без дополнительных зданий. Десять разогнанных конструкторов делают работу двадцати пяти на обычной скорости, и каждый, которого вы не построили, - это здание, которое сервер не тикает, не реплицирует и не сохраняет. Платить приходится энергией; энергия дешевле производительности.
Контейнеры вместо конвейеров в роли склада. Предметы на конвейере - это отдельно отслеживаемые объекты. Предметы в контейнере - это просто число. Петля из конвейера или длинный забитый конвейер в роли буфера - одна из самых дорогих конструкций, какие можно построить. Подавайте в Industrial Storage Container и забирайте из него.
Поезда и дроны, а не грузовики. Автоматические грузовики и тракторы - худшие нарушители на серверах. Транспорт, следующий записанному маршруту, управляется физикой, обходится тем дороже, чем его больше, а на выделенных серверах у него давняя история застреваний, съездов с маршрута и остановок, когда рядом никого нет. Поезда ходят по фиксированным путям и стоят дёшево. Дроны ещё дешевле для логистики на большие расстояния с небольшими объёмами.
Загрузка в Dimensional Depot. В 1.0 Dimensional Depot позволяет отправлять предметы в центральное хранилище и строить прямо из него. Если использовать его для строительных материалов, исчезают целые сети конвейеров, которые существовали только для того, чтобы возить бетон и стальные балки на стройплощадку.
Фундаменты - не проблема. Начиная с Update 8 фундаменты, стены и другие простые строительные элементы обрабатываются как облегчённые постройки, которые намного дешевле, чем раньше. Большие полы и стены стоят памяти и размера сохранения, но почти не стоят симуляции. Дорого стоят машины и движущиеся предметы.
Лампы и таблички стоят FPS, а не времени сервера. Сотни ламп в одной области рисует каждый клиент. Если FPS в фабрике плохой на ПК у всех, а графики сервера спокойны, первым делом посмотрите на освещение.
Репликация и число игроков#
Satisfactory построен и протестирован в расчёте на четырёх игроков. Больше можно пустить, изменив конфигурацию, как описано в статье настройки и сохранения сервера Satisfactory, и каждый дополнительный игрок обходится дороже предыдущего, потому что у каждого свой набор объектов рядом, которые нужно держать в актуальном состоянии.
Стоимость репликации зависит от того, что рядом с каждым игроком, а не от общего размера фабрики. Четыре игрока в одном плотном производственном блоке делят много общего состояния. Четыре игрока в четырёх разных плотных блоках его умножают. Поэтому откаты в большой фабрике часто прекращаются, когда игрок выходит на открытое место.
Помогают две вещи:
- Настройка Network Quality в Server Manager. Она обменивает трафик и работу сервера на каждого клиента на плавность. Повышение помогает, когда транспорт и другие игроки дёргаются, а фабрика в порядке. На сервере, который и так упирается в CPU, понижение уменьшает работу на одного игрока.
- Лимиты трафика движка. Сообщество давно советует поднимать лимиты сетевой пропускной способности Unreal Engine в серверных
Engine.iniиGame.iniдля больших фабрик, чтобы репликация не душилась. Ключи стандартные для Unreal, напримерMaxClientRateиMaxInternetClientRateв[/Script/OnlineSubsystemUtils.IpNetDriver]иTotalNetBandwidthв[/Script/Engine.GameNetworkManager]. Coffee Stain не документирует их как поддерживаемые настройки, правильные значения зависят от вашего соединения, а их эффект менялся между версиями игры - прежде чем править, проверьте актуальные советы на странице вики Satisfactory о выделенном сервере и сохраните копию исходных файлов.
[/Script/OnlineSubsystemUtils.IpNetDriver]MaxClientRate=104857600MaxInternetClientRate=104857600У игроков тоже есть своя опция Network Quality в настройках клиента; если один игрок дёргается сильнее остальных, проверьте его настройку.
Память: сколько и почему растёт#
Память следует за сохранением. Чем больше фабрика, тем больше объектов в памяти, а потребление памяти Unreal за сессию только растёт.
| Этап | RAM | Примечания |
|---|---|---|
| Новый мир, до 4 игроков | 8 GB | С запасом на ранних тирах |
| Середина игры, поезда, несколько площадок | 10-12 GB | Здесь большинство компаний проводит основное время |
| Поздняя игра, зрелая фабрика | 12-14 GB | Закладывайте пик во время сохранения |
| Мегабаза или тяжёлые моды | 14-16 GB | Больше всего добавляют строительные моды |
Две вещи стоит понимать.
Сохранению нужна дополнительная память. При сериализации мира ненадолго держится копия значительной его части. Сервер, работающий на 90% лимита, скорее всего упрётся в лимит именно во время автосохранения - а это худший момент из возможных, потому что сохранение прерывается.
Память не возвращается в течение сессии. Сервер, проработавший неделю, использует больше, чем тот же мир после свежего запуска. Проходы очистки движка часть возвращают, и в большом мире эти проходы - те самые короткие подвисания между автосохранениями. Регулярный перезапуск всё сбрасывает.
Тарифы Satisfactory в RE:NODE - от 8 GB до 14 GB. Контейнер, достигший лимита, останавливается и перезапускается начисто, а не уходит в swap. Это защищает машину, но стоит всего, что было после последнего сохранения; если график памяти подбирается к лимиту, переходите на тариф выше, пока это не вошло в привычку. Смена тарифа меняет лимиты на существующем сервере, а не пересоздаёт его, так что сохранение остаётся на месте. Признаки, на которые стоит реагировать, - в статье когда переходить на тариф выше.
CPU и что даёт более быстрое ядро#
Тик фабрики выполняется в основном в одном потоке. На графике это выглядит как одно ядро в потолке при остальных простаивающих, а при многоядерном выделении в среднем получается цифра, которая выглядит нормально. Статья как читать график нагрузки сервера объясняет, почему однопоточная игра может быть перегружена при 40% CPU по графику.
Что дают дополнительные ядра: сохранение, сеть и служебная работа движка выполняются вне игрового потока, так что второе и третье ядро избавляют их от конкуренции с фабрикой. Сверх этого больше ядер ничего не дают для размера фабрики. Что даёт более высокая частота - это более высокий потолок того, сколько фабрики может тикать в секунду, прежде чем отстанет само производство.
Когда тик фабрики не укладывается в бюджет, симптомы тонкие: машины производят чуть меньше номинала, поезда приходят с опозданием, а весь мир ощущается слегка «вязким». Ответ, по порядку: снесите ненужное, укрупните машины разгоном и Somersloop, замените грузовики, освободите конвейеры-буферы - и только потом думайте о тарифе побольше.
Перезапуски и обслуживание#
Перезапуск по расписанию - самая простая мера производительности для большого мира Satisfactory. Он очищает накопленную память, сбрасывает стоимость очистки движка и даёт чистую точку сохранения.
В Server Manager есть настройка Server Restart Time Slot, которая позволяет серверу перезапускаться самому в выбранный час. У хостинга с панелью можно использовать и расписание - на RE:NODE вкладка Schedules выполняет перезапуск и backup по cron-выражению, так что ночная копия делается сразу после чистого сохранения. Убедитесь, что включена Autosave on Player Disconnect, чтобы последний выходящий игрок всегда записывал мир.
Для большинства компаний достаточно раза в неделю; ежедневно - разумно для мегабазы, у которой заметно растёт память. Про выбор времени - в статье расписания перезапусков, которые помогают.
Перед каждым обновлением игры делайте backup. Сохранения совместимы только вперёд: сохранение, открытое более новой версией, нельзя вернуть на старую, а обновление, ухудшившее производительность, без копии не откатить. Статья бэкапы, которые действительно восстанавливаются объясняет, почему время от времени восстанавливать бэкап - часть работы.
Устранение неполадок#
Фриз каждые пять минут. Автосохранение. Убедитесь, что фризы совпадают с интервалом, затем уменьшите сохранение и немного увеличьте интервал.
Фризы усилились после постройки новой площадки. Больше предметов в пути и больше машин в сохранении. Проверьте, нет ли в новой постройке конвейеров, используемых как буфер.
Грузовики останавливаются или съезжают с маршрутов. Известная слабость автоматического транспорта на выделенных серверах. Замените маршрут поездом или дронами.
Сервер сам перезапустился посреди сессии. Вероятно, лимит памяти, возможно во время сохранения. Посмотрите на график памяти перед перезапуском - типичные картины разобраны в статье почему ваш игровой сервер постоянно перезапускается.
Одно ядро CPU в потолке, когда никого нет онлайн. Auto Pause выключена, поэтому фабрика работает круглосуточно. Это выбор; включите Auto Pause, если вы этого не хотели.
Откаты только на главной базе. Репликация. Помогают Network Quality и меньше игроков в самом плотном месте; тариф побольше обычно не помогает.
FAQ#
Делает ли больше RAM сервер Satisfactory быстрее?
Только если ему не хватало памяти. RAM позволяет серверу держать большую фабрику, не останавливаясь на лимите; он не ускоряет тик фабрики и не сокращает сохранение. Это делают более быстрые ядра и более экономная фабрика.
Насколько большой может быть фабрика Satisfactory на выделенном сервере?
Жёсткого лимита нет. Практический наступает, когда фриз автосохранения и тик фабрики становятся неприятными. Компании, которые строят с разгоном, поездами и контейнерами, заходят гораздо дальше, чем компании с маршрутами грузовиков и конвейерами-буферами.
Плохо ли поезда влияют на производительность?
Нет. Поезда - один из самых дешёвых способов перевозить много материала. Большое число сложных развязок с плотной сигнализацией добавляет немного нагрузки, но грузовики и петли конвейеров намного хуже.
Почему игра лагает, когда все в одной фабрике?
Сервер отправляет каждому игроку меняющиеся объекты вокруг него. Несколько игроков в самом плотном блоке умножают эту работу. Помогает разойтись или поднять Network Quality, если у сервера есть свободный CPU.
Стоит ли выключать Auto Pause для большой фабрики?
Только если вы хотите, чтобы производство шло, пока никто не играет. Когда она выключена, фабрика работает, сохранение растёт, и одно ядро занято весь день. Когда включена, мир ждёт вас.




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