Когда друг попросил «поднять сервачок на 20 человек, там делов на час», я честно подумал, что это будет проще, чем объяснить бабушке, зачем ей смартфон. Но прошло полтора года, и теперь на том же сервере тусуются уже 200 человек одновременно. И знаете что?
Я стал настоящим гуру JVM-тюнинга — то есть человеком, который знает о Java Virtual Machine больше, чем хотел бы. Это как стать мастером по приготовлению борща после того, как тебе пришлось кормить целую армию голодных викингов.
Теперь по делу: первый миф — Minecraft требует кучу ядер процессора.
Нет, друзья мои! Vanilla-сервер почти полностью однопоточный, так что вам не нужны 32 ядра по 1 гигагерцу каждое.
Лучше два-три быстрых ядра, которые смогут быстро обработать запросы игроков. Мой выбор пал на Ryzen 9 5900X — мощь и скорость в одном флаконе.
RAM тоже важна: JVM любит память побольше — минимум 12 гигабайт под сам сервер и еще около 4 для операционной системы. А вот диск — это святое!
NVMe обязательны: если у вас SATA SSD или тем более старый HDD, то при заходе игроков в новые зоны ваш сервер начнет лагать так сильно, что можно подумать, будто вы играете через модем из девяностых.
Кстати о ядрах сервера: официальный сервер Mojang — это как ездить на старом «Запорожце» по автобану. Для серьезных нагрузок лучше взять Paper — это как Tesla среди серверных ядер: мощная и быстрая с кучей функций и совместимостью с большинством плагинов из коробки.
Есть еще Purpur с максимальной конфигурируемостью (почти как кастомный торт у бабушки), Folia с многопоточностью (но плагинов под нее мало), а Spigot и Vanilla уже устарели настолько, что их использование вызывает ностальгию по временам Windows XP.
Теперь к самому забавному — настройка JVM. Просто запускать сервер командой `java -jar server.jar` — это примерно как пытаться разогнать Формулу-1 на велосипеде. Тут нужен комплект флагов от Aikar’а — они словно волшебные зелья для Java-машины: уменьшают паузы сборщика мусора и заставляют сервер работать плавнее.
Главное правило здесь — `-Xms` и `-Xmx` должны быть одинаковыми; иначе Java будет играть в жадного ребенка: сначала возьмет много памяти, потом вдруг решит уменьшить ее размер, а потом опять увеличить — короче говоря, полный хаос.
Переходим к конфигам paper.yml и bukkit.yml — тут многие советуют просто скачать готовые файлы из интернета и забыть про них навсегда. Но я скажу так: лучше понять каждую строчку конфигурации!
Например, снижение количества чанков для автосохранения уменьшит пики нагрузки на диск; ограничение спавна мобов сделает игру плавнее; а ограничение генерации чанков предотвратит превращение вашего сервера в бездонную яму данных.
А теперь про мониторинг! Если вы думаете, что просто запустили сервер и он сам себя настроит – поздравляю вас с попаданием в клуб оптимистов!
Установите плагин Spark — он станет вашим лучшим другом в мире профайлинга Minecraft-серверов. Он покажет TPS (Ticks Per Second) – идеальное значение равно 20 (да-да, именно столько тиков должно быть в секунду).
Если TPS падает ниже 18 – начинайте нервничать; ниже 15 – игроки уже ощущают лаги так сильно, что готовы начать флудить в чат матом.