Я работаю над настройкой сервера Minecraft на машине, которая есть у меня дома. Эта конкретная машина имеет два четырехъядерных процессора, работающих на частоте 2,0 ГГц, поэтому я хотел бы воспользоваться преимуществом количества ядер и запустить сервер с 4 или 6 ядрами. Я выбрал сервер CraftBukkit, последняя версия которого — craftbukkit-1.4.7-R1.0 и запускается с помощью сценария запуска:
"C: Program Files Java jre7 bin java.exe "-Xms1G -Xmx8G -jar craftbukkit-1.4.7-R1.0.jar"
В Minecraft Wiki говорится:
Серверы Minecraft, начиная с версии 1.1.0, могут использовать несколько ядер, поэтому теперь они не будут сидеть без дела.
но делает не особо подробно останавливаться на этом.
Тогда мои вопросы:
- Можно ли установить количество ядер, используемых сервером?
- Как мне это сделать — с помощью параметров запуска или других методов?
- Действительно ли это того стоит и будет ли это иметь такое большое значение для многих игроков ?
Если вы используете JDK вместо JRE, вы можете использовать следующую командную строку, чтобы заставить JDK использовать все доступные ядра для оптимизации самой Java ( источник):
-server -XX: + UseConcMarkSweepGC -XX: + UseParNewGC -XX: + CMSIncrementalPacing -XX: Paralle lGCThreads = 7 -XX: + AggressiveOpts -Xms1G -Xmx8G -jar craftbukkit-1.4.7-R1.0.jar
Поскольку вы явно используете Windows, рассматривали ли вы YAMS? (Полное раскрытие: я сделал это). YAMS сделает все это за вас.
Спасибо за попытку, man, но для процесса в java требуются определенные триггеры для разделения потока — он должен быть закодирован таким образом.
Вы можете получить несколько практических примеров здесь: https://beginnersbook.com/2013/03/multithreading-in-java/
Хотя Minecraft имеет достаточно надежную развитую поддержку многоядерности на стороне клиента, на стороне сервера она отсутствует. Все, что превышает 3 ядра, не будет использоваться, если только новые итерации не вводят командную цепочку блоков с автоматическим разделением потоков, что делает код выделенного сервера более масштабируемым, чем он был с момента выпуска.
4