Многопоточность Minecraft сервера
Есть сервер Minecraft на ядре Paper, он находится на машине с такими характеристиками:
- i7 3770
- 16 Gb Ram
Тпс на сервере проседает до 15, когда онлайн поднимается до 20 Даже если поставить сервер на Intel core i9 9900k 5 Ghz (Думаю это лучший вариант, если смотреть на один поток), сервер не выдержит онлайна в 100 игроков. И тут главный вопрос, как можно разделить сервер на потоки? Если есть другой вариант поднятия оптимизации, был бы рад услышать его. Искал информацию по вопросу разделения сервера на потоки процессора, но не нашел решений.
Ответы (1 шт):
Возможно, очень поздно оставлять здесь ответ, но хочу сказать одно: Minecraft сервера всегда были и будут многопоточными. То, что сервера работают в одном потоке - полная чушь, ибо при онлайне в 10 человек на 1.18 сервер спокойно может использовать больше одного ядра, а при прогрузке чанков и один человек может загрузить все 4 ядра, к примеру. Многопоточность есть, но она реализована достаточно криво, т.к. 60% кода упирается в главный поток, при котором нельзя запускать на один сервер более 150 человек, иначе TPS будет просаживаться, да и ограничения свои есть в игре. Сервер может начинать лагать даже при использовании 6 ядер из 8, к примеру. Остальные просто будут простаивать.
i7-3770 - не лучшее решение для Minecraft сервера. Лучше присмотреть Ryzen'ы, либо другие процессоры с частотой >4.4 ГГц. i9-9900k с 5 ГГц ныне слишком раскошное решение.
Чтобы решить проблему лагов, необходимо разобраться со сборкой и в принципе разобраться, что там находится. Возможно, ты поставил Bukkit/Spigot, которые ведут себя крайне неадекватно по отношению к производительности.