Как стать автором
Обновить

Комментарии 47

Прикольный обзор, спасибо.
Только просьба в каждом графике писать — больше — лучше или меньше — лучше

Ещё лучше сделать все графики от нуля.

это не всегда удобно :(
Любопытно, только те графики не от нуля, где Windows вариант «побеждает». Bias?
Java то какой версии?
Думаю, 8.51(x86). Большинство сборок Minecraft, которые я встречал, включая официальный лаунчер, используют эту версию.
Были установлены последние публично доступные версии.

Oracle: «1.8.0_241»
AdoptOpenJDK: «1.8.0_242»
OpenJDK: «1.8.0_232»

Добавили эту информацию в статью.
НЛО прилетело и опубликовало эту надпись здесь
На самом деле мерить так производительность — совсем не показатель. К примеру та же генерация чанков, имеет холодный прогрев, когда чанки генерируются и сохраняются на диск, в дальнейшем только обновление тайлов, на этих чанков (сущности, механизмы) и создает основную нагрузку. Тестирование запуска, это погрешности, которые от запуска к запуску будут меняться. Тестировать нужно с погруженной картой и желательно с игроками. Но как показывает практика OS или JVM особо на показатели не влияет и погрешность в реальной эксплуатации примерно 15%. Ставят Linux чаще всего под сервера, потому как ОЗУ для сервера minecraft очень важна и нужна, а windows кушает на порядок больше.
На порядок? Вы преувеличиваете. В некоторых случаях разница до полутора раз, но это далеко от «на порядок». Говорю как человек, который держал высоконагруженный сервер на выделенной Win машине и сравнивал с таким же сетапом, запущенным на CentOS.
Каковы были ваши результаты?
Исходные данные: TerraFirmaCraft с изрядно доработанными для стабильности и совместимости сопутствующими модами и аддонами (SmartMoving, Celsium, Ships, Growth, Cellars, OpenCities, вся линейка BiblioCraft, BetterQuesting, и многие другие, всего не упомню уже), оптимизировано по максимуму, так как TFC весьма ресурсоёмок. Вся карта предгенерированная 6000х6000.
На Win-машине стояла W10 Enterprise 1803 + Oracle JDK 1.8.0_162-b12, пиковый онлайн до 300, обычный ~220 юзеров. Потребление памяти было в районе 12гб.
При тестовых запусках на дедике с CentOS и openjdk-1.8.0.151-5.b12 тот же сервер с такой же нагрузкой уложился в 9гб, но на тот момент у проекта не было человека, который грамотно разбирается в администрировании линукса, поэтому было решено оставить Win вплоть до естественной смерти проекта (падение онлайна спустя год с лишним из-за потери интереса у основной массы хардкор-игроков).
На тот момент таких подробных тестов, как это сделали вы, не проводили, так что могу назвать лишь приведённые выше цифры.
Скорее всего имелось ввиду не столько потребление памяти самим сервером MC, сколько кол-во доступной памяти для него.
Linux без оболочки «кушает» в районе 100МБ.
Windows — минимум 700MB (А то и все 2GB, если это не Windows Core)
А ещё есть Bedrock-версии, вроде как вообще без Java…
Ну на Bedrock есть vanilla ядро, почти не администрируемое, и семейство pmmp/nukkit/minet, которые ничего кроме плагинов не умеют.

И за счёт этого имеет кроссплей, уникальный для такого класса игр.

OracleJDK, кстати, тоже есть под Linux, но не тестировался там почему-то, хотя как раз интересно было бы взглянуть на один и тот же JDK на разных платформах.
Спасибо за пост. Но тест довольно грубый и ему нельзя доверять:

— В каждом минорном апдейте джавы — сотни, если не тысячи изменений. Поэтому, как минимум, нужно было взять одинаковую версию;
— Сейчас последняя LTS версия — Java 11, не понятно зачем тестить восьмерку. Которая по фичам уже очень далеко позакди 11-ки;
— Нету инфы про патчи — spectre, meltdown и остальные;
не понятно зачем тестить восьмерку
Потому что только на ней официально поддерживается работа Minecraft. Ванильную игру, конечно, можно запустить и на более свежих версиях, но с модами это редко приводит к успеху.

Должен сказать что не совсем объективное сравнение. Почему на Windows вы поставили "классическую" Java, а на Linux OpenJDK? Оракловская Java на Ubuntu тоже есть, и результаты будут лучше, ибо сама технология Java изначально разрабатывается Oracle. И на Windows аналогично OpenJDK есть. А из-за подобного сравнения создаётся негативное впечатление о Linux в целом, а не о JVM.

Почему негативное то?
По-моему то что тут на линуксе тестировалось показало в целом лучшие результаты наоборот.


ибо сама технология Java изначально разрабатывается Oracle

Ну это враньё уже, Java изначально разрабатывалась Sun, и в какой-то момент была форкнута на две более менее равноправные ветки, одна опенсорсная другая клозедсорсная.

Да не было никакого форка, Оракл Jdk собирается из тех же исходников, что Open JDK

чтобы хостить лучшую игру человечества

Это почему она вдруг лучшей стала?
List of best-selling video games

Когда «лучший» стал синонимом «самый продаваемый»? Или миллионы мух не могут ошибаться?
Я бы сказал «Революционная». Все таки эта одна из первых 3Д игр, полностью процедурных, с воксельным миром. Мне было очень интересно наблюдать как разработчик за ней. Как она с бета версий эволюционировала и наращивала всякие штучки-дрючки с оптмизациями, рендера и прочее.

Так и когда я попробовал игру — когда она была еще в бете. Я был в шоке. Перед тобой бесконечный мир, в котором ты можешь делать что угодно.
То что ее хейтят из за того, что она стала хайповой в аудитории 13+ — я считаю зря. Игра и вправду заставила меня здраво так офигеть. А до этого, потолком песочниц я считал игру Black and White.
С дварф фортресом, который любят в сравнение кидать, я познакомился позже, но это явно игры разного жанра.
Ну сама идея да, хорошая, тут я не спорю.

Но называть её «лучшей» — невежество.
Она лучшая. Невежество — это отрицать)
Когда ты школьник — может быть.
В «лучших» традициях человека с психологией школьника причислять других к «школьникам» и «школоте»)
Шутка? не, не слышали…
На linux удобно сделать systemd-скрипт (если он есть) с параметром. Позволяет однотипно запускать-останавливать отдельные миры — например, завести отдельный сервер для Missile Wars, не трогая основной.

Какое ядро, какая версия ядра использовались? Они сильно отличаются по производительности.


Было бы интересно посмотреть на такое сравнение операционных систем с таким сервером: paper ядро новейшей версии, оптимизированные аргументы java для minecraft и один и тот же мир со множеством прогруженных игроком сущностей — мобы, животные, рамки, стойки брони т.д. — они дают самую ощутимую нагрузку при ежедневной работе сервера. Генерация мира же делается всего один раз и без игроков, чтобы переждать один раз этот затратный по ресурсам процесс и больше к нему не возвращаться.

Везде использовался стандартный сервер Minecraft из лаунчера и Forge 1.12.2 — 14.23.5.2847.
Я понимаю что Вам выгодней давать в аренду виртуалки с виндоузом.
Но было бы интересней увидеть тесты на debian и freebsd.
А не дестктопной убунте еще и с иксами (или даже с дефолтным гномом?)

Ужасная статья. UltraVDS пополнил мою копилку «плохих» компаний, с которыми не стоит иметь дел.
Ни методики тестирования, ни информации об окружении, ничего, просто набор каких-то непонятных графиков.

Статья соответствует заголовку примерно так же как и «гимп в линуксе против фотошопа в венде» при существующем заголовке.
Фактически, проверили работу трёх сборок джавы. При чём тут «windows vs linux» — загадка. И это при том что все эти три джавы есть под обе платформы, но авторы решили не заморачиваться. Ценность теста — околонулевая.


Но да, если смотреть со стороны «покупайте наши виртуалки с вендой», тогда всё нормально.

Это неверно, различия могут быть еще в файловых системах и в том, как работают планировщики процессора в разных ОС.
И между OpenJDK на разных ОС, как вы видите, была разница.

Так ведь для того чтобы увидеть эти самые различия в планировщике и ФС нужно использовать одинаковые джавы, а не разные. В тесте же сравнили «гимп в убунте» и «фотошоп в венде» и выдали как сравнение «linux vs windows». Чушь ведь!

Я как заядлый фанат Minetest, в следующий раз хотел бы видеть сравнение производительности на Линуксе уже с ним.
всё бы ничего (про серверную бубунту вы написали уже), но давайте сравнивать одни и те же версии Явы (6 тестов: 2 ОС по 3 разных Явы) и для запуска не обязательно ставить JDK, если что… правда про вариант Adopt не уверен, есть ли у них JRE, но можно выковырять… по мне так не совсем показательный тест. надеюсь хоть по железу виртуалки не отличались?
Зарегистрируйтесь на Хабре , чтобы оставить комментарий