Сервер Minecraft, который кажется медленным, почти никогда не испытывает нехватки памяти. Проблема в том, что сервер не успевает обработать тик за 50 мс, и причины обычно связаны с сущностями, загрузкой чанков, дистанцией прорисовки и серверным ПО, примерно в таком порядке. Исправьте эти проблемы, и сервер с 4 ГБ оперативной памяти будет работать лучше плохо настроенного сервера с 12 ГБ.
Важнейшая метрика — TPS, а не использование RAM. Двадцать тиков в секунду — это полная скорость. Всё, что ниже, означает, что серверу не хватает времени на тик, а не памяти.
Работайте в этом порядке
1. Дистанция прорисовки (View distance). Каждый игрок держит квадрат чанков вокруг себя загруженным. Снижение дистанции прорисовки с 10 до 6 уменьшает площадь примерно на две трети и обычно обеспечивает самый большой выигрыш. Дистанцию симуляции можно уменьшить ещё больше, так как большинство игроков не заметит разницы между заморозкой мобов на 6 или на 10 чанках.
2. Сущности (Entities). Мобы, упавшие предметы, вагонетки и стойки для брони все обрабатываются каждый тик. Несколько тысяч упавших предметов ведут себя как DoS-атака, устроенная вами самим. Ограничьте спауны мобов, регулярно очищайте предметы и внимательно следите за фермами, которые работают, когда никого рядом нет.
3. Редстоун и воронки (Redstone and hoppers). Воронки постоянно опрашиваются, независимо от того, движется ли что-то через них. Стена из воронок оказывает высокую нагрузку на сервер, хотя визуально это не заметно.
4. Загрузка чанков (Chunk loading). Всё, что держит чанки загруженными далеко от игроков, постоянно тратит квоту на тики. Стоит проверить чанклодеры и системы на базе порталов, прежде чем покупать более дорогой тариф.
5. Серверное ПО (Server software). Paper делает ту же работу лучше чем ванильный сервер, и эта разница ощутима. Forge и Fabric добавляют дополнительную нагрузку из-за модов — это цена за моды, а не проблема.
Вопрос по памяти, отвечаем подробно
Память становится ограничением в ровно двух ситуациях, которые легко распознать:
java.lang.OutOfMemoryErrorв логах. Безоговорочно — купите больше памяти.- "Пилообразное" использование памяти с периодическими паузами. Это паузы сборщика мусора. Это проблема настройки, а не нехватки памяти.
Всё остальное, что воспринимается как лаги — это цикл тиков. Статья Сколько оперативной памяти нужно серверу Minecraft детально объясняет выбор размера памяти и флаги JVM, включая почему -Xms и -Xmx должны быть одинаковыми и почему выделять весь лимит памяти под heap — плохая идея.
Модифицированные серверы — это другая история
Моды загружаются при старте и остаются активными. Это влечёт за собой две важные особенности, которые многие узнают на практике:
- Высокое использование простаивающих ресурсов — это нормально. Модпак, занимающий 6 ГБ при отсутствии игроков онлайн, не сломан.
- Стоимость тика указывается для каждого мода и суммируется. Машины, загрузчики чанков и моды для генерации мира добавляют работу каждый тик, и делают это независимо от того, онлайн ли игрок, который их создал.
Добавляйте моды партиями, чтобы при падении производительности можно было определить причину. Это та же дисциплина, которая помогает поддерживать стабильность серверов Garry's Mod и Factorio, и та же ошибка портит все три.
Что делать перед покупкой более дорогого тарифа
- Установите дистанцию прорисовки на 6, дистанцию симуляции на 4. Измерьте показатели.
- Очистите упавшие предметы и ограничьте спавн мобов. Измерьте.
- Перейдите на Paper, если вы не используете его и не играете на модах. Измерьте.
- Только после этого смотрите тариф.
Наш хостинг серверов Minecraft позволяет настраивать дистанцию прорисовки, серверное ПО и флаги JVM из панели управления, так что для каждого из этих изменений нужно лишь перезапустить сервер, а не писать в поддержку.
Когда проблема действительно на нашей стороне, а не на вашей
Если TPS в порядке, но всё кажется задержанным, это скорее задержка, а не нагрузка на сервер, и никакая настройка не исправит расстояние. Наши серверы стоят во Франкфурте, поэтому это расстояние является фактом о вашей группе, а не настройкой. Если это уже так и всё равно что-то не так, стоит обратиться в службу поддержки, а не менять настройки.

автор 


