Вопрос Из-за чего могут быть лаги? [Периодически кстати перестает работать чат, даже на команды]

Chef

Пользователь
Сообщения
14
[ ] /spark profiler start --only-ticks-over 50 --timeout 600

С сетью вроде всё хорошо:

Вам необходимо зарегистрироваться для просмотра изображений-вложений




И не думаю, что это ТСПУ у провайдера (Билайн, 100-1000 Гбит).


Железо и система на первом скриншоте (в нижней половине):



Вам необходимо зарегистрироваться для просмотра изображений-вложений




Ядро (действительно достойный форк Purpur'а).



Вам необходимо зарегистрироваться для просмотра изображений-вложений



  • Заметил странности в GC: потребляет очень много ресурсов (как не в себя), и при этом вообще не чистит оперативку.
  • Еще вижу нагрузку в одном плагине, когда он телепортирует игроков в мини-игры, обратно и т.п.
    Но телепортации происходят далеко не всегда, можно считать, что разово.

ОЗУ 18 Гб (8 Гб + 10 Гб файл подкачки).
На сервер выделено 12 Гб.
Лаги заметны и особенно ощутимы при 50 игроках.


Флаги запуска от Aikar (те, которые для 12 Гб ОЗУ и ниже):
Запуск пока что через screen.


Вам необходимо зарегистрироваться для просмотра изображений-вложений




Сделал очень много детальных оптмизаций в
  • /gamerule
  • server.properties
  • spigot.yml
  • config/* (конфиги paper, gale, leaf)
  • purpur.yml
  • и т.д.

Так как сервер мини-игр, отключил большинство нагружающих механик: коллизии игроков (для других сущностей максимум 2 коллизии), обновления блоков, спавн мобов, их поведение, радиусы, в общем ВСЁ, что было бы нужно для обычного выживания, но совсем не в карту на сервере мини-игр.


Сами конфиги можно увидеть в отчёте Spark, который приложил в самом начале этой темы.



Вам необходимо зарегистрироваться для просмотра изображений-вложений




Мир прогружен и всегда статичен. Лишних механик и событий нет, всё ненужное, что обычно нагружает сервера, отключено на корню.
50 игроков, а даже 12 Гб ОЗУ не справляются. ЦП выглядит вообще ненагруженным.

Железо достаточно хорошее. ОС Debian 12, запущена в VirtualBox.

Диск сетевой, находится физически в полуметре от серверного компьютера, но вряд ли дело в нем, ведь диск отвечает только за загрузку чанков и сохранения. Которые происходят раз в 5 минут (стандартно).



В какую сторону копать, чтобы найти причину?
У меня даже нет идей, впервые с таким сталкиваюсь.



А надо захостить в ближайшем будущем до 456 игроков,
когда всё доделается (хочу на этой неделе) и начнется серьезный пиар, т.к. сервер по хайповой тематике.

А тут всё уже на 50-ти игроках не вывозит. И смешно, и грустно.


А, и еще стоит Velocity с 2 Гб ОЗУ. Я пробовал увеличивать ему память (хотя он вроде вообще ничего не потреблял) до 4 Гб на всякий случай, особенно как снова зайдут 50+ игроков, но проблемы повторялись. Так что его как-то отметаю.


И еще когда лаги, у меня как владельца, и модераторов - бывает не работает отправка сообщений в чат (даже команды, что самое главное). При этом сам чат мы видим. И всё остальное работает как надо - игроки играют без видимых проблем у нас.

Список плагинов кстати тоже по ссылке на Spark
 
Последнее редактирование:
А, и еще стоит Velocity с 2 Гб ОЗУ. Я пробовал увеличивать ему память (хотя он вроде вообще ничего не потреблял) до 4 Гб на всякий случай, особенно как снова зайдут 50+ игроков, но проблемы повторялись. Так что его как-то отметаю.
Вот тут возможно используешь версию велосити с утечкой оперативной памяти. Либо вовсе не ребутаешь прокси сервер)
 
Вот тут возможно используешь версию велосити с утечкой оперативной памяти. Либо вовсе не ребутаешь прокси сервер)
А можно подробнее? Скачивал официальную версию (3.4.0-522).
Как часто его надо ребутать и почему это приходится делать, не исправлено изначально?
Какие настройки limbofilter лучше использовать? Спасибо
 
А можно подробнее? Скачивал официальную версию (3.4.0-522).
Как часто его надо ребутать и почему это приходится делать, не исправлено изначально?
Какие настройки limbofilter лучше использовать? Спасибо
Касаемо утечки я информации не дам - ибо потерял, а по поводу ребутов - чисто как совет и личный опыт - каждое утро авто-рестарт crontab'ом у меня стоит.
До этого рестартов прокси также не было и плохо чувствовали себя сервера когда прокси без "перерыва" работает. (Начал делать рестарты, серверам стало в разы лучше).
 
  • Мне нравится (+1)
Реакции: Chef
А можно подробнее? Скачивал официальную версию (3.4.0-522).
Как часто его надо ребутать и почему это приходится делать, не исправлено изначально?
Какие настройки limbofilter лучше использовать? Спасибо
Попробуй обновить DecentHolograms
 
10гб свапа это много, свап обычно используется для сборщика и кэша в небольшом количестве. Для системы всегда должна быть в приоритете обычная рам память, ровно так же как и для кубача. Выдели 6-8гб памяти для кубача и обязательно перезагружай сервер раз в 3-8 часов.

Используй Graalvm EE(Именно EE) 24 и его флаги. Так же используй эти флаги (ZGC), если планируешь держать 150-500 игроков. Для большого онлайна нужно 12-16гб обычного рама, больше не имеет смысла.

Обнови все плагины до последней версии. Не используй CMI, AntiWorldDownloader и Датапаки. Чаще всего плохие датапаки могут создавать проблемы на больших серверах.

Оптимизируй сервер по
 

Да, я хотел его поставить, полез в интернет, чтобы узнать насчет того, поддерживается ли он Майнкрафт серверами, и узнал оттуда, что нет, поэтому не стал тогда ставить.

А Вы используете его для серверов? И есть у него какие-либо нюансы?

Не используй CMI, AntiWorldDownloader
А что использовать вместо CMI? Essentials не поддерживает MySQL, Redis и синхронизацию данных между разными инстансами одного и того же сервера, да и из того, что я о нем узнавал в некоторых местах, писали, что он менее оптимизирован (Essentials), чем ЦМИ. Находил еще zEssentials и SunLight. Может отключение ненужных модулей CMI подойдет? Или никак? Жалко конечно еще отданных денег, ведь пиратку не хотел ставить из-за возможных шеллов/бэкдоров. Но в целом пожалел о покупке сразу. Хотя расписан он так, что прям аж хочется его поставить, и рекомендовали еще многие вместо Essentials везде.

AntiWorldDownloader чем плох? По идее он просто отсекает клиенты с модом. А что происходит на практике?

Датапаков нет, даже не разбираюсь в них (олдскул мозги, не во всём новом разбираюсь), но знаю точно - датапаки и командные блоки - это треш, который надо обходить стороной, это сильно нагружающие способы добавления чего-либо в игру и неудобные - для тех, кто не знает Java. Надо добавлять что-либо плагинами, или, лишь в крайних случаях, напрямую в ядре
 
Последнее редактирование:
А Вы используете его для серверов? И есть у него какие-либо нюансы?
Это JVM, она не может не поддерживать Minecraft. Не читай всякую ерунду. Это более производительное jvm с добавлением очень крутых флагов и некоторыми важными манипуляциями с байткодом и мощным компилятором, которые дают огромные преимущества в работе с памятью и процессором.
Находил еще zEssentials и SunLight
Используй Sunlight, HuskSync, HuskHomes и TAB, если тебе нужна стабильность и поддержка межсерверности. CMI ужасен тем, что он закрыт, имеет тонну проблем и несомненностей из-за объёма ненужного контента (даже сейчас на него валяются сотни репортов), годы едут, а баги так и идут пачками. Используй в приоритете только открытое, стабильное и хорошо написанное ПО.

Ты НИКОГДА не защитишься от выкачки ассетов/данных, это технически и теоретически НЕВОЗМОЖНО во всём геймдеве. Бессмысленный плагин, особенно в рамках выкачки мира это кринж, обходиться очень просто.
 
Graalvm EE(Именно EE) 24 и его флаги
А где найти именно EE? Debian Linux. Нахожу только EA. Поставил SDKMAN, в нём так же.
Какие флаги надо использовать для GraalVM?

Ты НИКОГДА не защитишься от выкачки ассетов/данных, это технически и теоретически НЕВОЗМОЖНО во всём геймдеве
Я это знаю, просто хочется иметь хотя бы самую базовую защиту, чтобы фильтровать хоть какой-то процент.
Этот плагин нагружает сервер?
 
А где найти именно EE

Какие флаги надо использовать для GraalVM?
Тут описаны флаги, но это не все. По крайней мере те которые здесь описаны могут хорошо помочь серверу, главное изучи как работают флаги. Это очень важно при высоконагруженных серверах.

Этот плагин нагружает сервер?
Не нагружает, но с технической точки зрения лучше всегда убирать лишний функционал на сервере. Это действительно бесполезно и не имеет смысла.
 
Enterprise - это же нечто оверплатное для огромных компаний, нет?

Для скачивания есть только Java 17, 11 и 8

Вам необходимо зарегистрироваться для просмотра изображений-вложений


Используй Graalvm EE(Именно EE) 24

Даже 21-й нет, а 24 тем более

Если вы имели в виду версию самого Граля, то последняя 21:

Вам необходимо зарегистрироваться для просмотра изображений-вложений

Но Java все равно 17
 
@Mioji это не подходящая версия?

Вам необходимо зарегистрироваться для просмотра изображений-вложений


Видимо да:
Вам необходимо зарегистрироваться для просмотра изображений-вложений

SE
 
Последнее редактирование:
Тут описаны флаги, но это не все. По крайней мере те которые здесь описаны могут хорошо помочь серверу, главное изучи как работают флаги. Это очень важно при высоконагруженных серверах.
offtop Никогда не советуй никакие флаги кроме флагов айкара.
Бесконечный вред и проблемы он всех всегда.
 
offtop Никогда не советуй никакие флаги кроме флагов айкара.
Бесконечный вред и проблемы он всех всегда.
offtop
Например какие?
И чем тебе на граале не угодили допустим те-же MeowIce's Flags?
 
Например какие?
И чем тебе на граале не угодили допустим те-же MeowIce's Flags?
Для начала смотри:

После того как посмотришь сюда - удали все флаги из этого мусора, которые включены по умолчанию или имеют дефолтные значения, после этого удали все флаги, которые НЕ доступны для твоей системы (всё с пометкой ARCH и такие флаги как UseNUMA, которые могут системой не поддерживаться)
Потом посмотри на все значения, которые фигурируют во флагах где указываются значения и подумай, нужно ли тебя менять их с дефолтных.

И в конце концов посмотри что у тебя останется от этих мега-оптимизированных флагов.


А если тебе нужен конкретный пример right-away - флаг OmitStackTraceInFastThrow мешает определить причину по который был высран эксепшн.
 
Для начала смотри:

После того как посмотришь сюда - удали все флаги из этого мусора, которые включены по умолчанию или имеют дефолтные значения, после этого удали все флаги, которые НЕ доступны для твоей системы (всё с пометкой ARCH и такие флаги как UseNUMA, которые могут системой не поддерживаться)
Потом посмотри на все значения, которые фигурируют во флагах где указываются значения и подумай, нужно ли тебя менять их с дефолтных.

И в конце концов посмотри что у тебя останется от этих мега-оптимизированных флагов.


А если тебе нужен конкретный пример right-away - флаг OmitStackTraceInFastThrow мешает определить причину по который был высран эксепшн.
offtop
То есть если подвести итоги, то получается, что я в к айкари флагам и вернусь?
Тогда лично у меня возникает вполне логичный вопрос, зачем тогда нужны такие флаги как или если они выходит бесполезные?
 
offtop
Понял тебя, спасибо за информацию.
offtop Итак я
Прошелся ещё раз по ВСЕЕЕМ дефолтным флагам жабы, глянул какие стоят на false, когда могут быть на true без ЯВНЫХ проблем.

-XX:+UseCompactObjectHeaders -XX:+UseFastUnorderedTimeStamps -XX:+TrustFinalNonStaticFields -XX:-DontCompileHugeMethods -XX:+AlwaysActAsServerClassMachine -XX:+UseCriticalJavaThreadPriority -XX:+UseCriticalCompilerThreadPriority -XX:+EnableVectorSupport -XX:+EnableVectorReboxing -XX:+AlignVector -XX:+UseVectorCmov -XX:+UseVectorStubs -XX:+TrapBasedNullChecks -XX:+TrapBasedRangeChecks

НО!
UseFastUnorderedTimeStamps и TrustFinalNonStaticFields потенциально БЫТЬ МОЖЕТ! могут вызывать проблемы (первый точно не рекомендую на сервер вставлять на котором люди играют)
DontCompileHugeMethods потенциально может увеличить потребляемую память
 
Последнее редактирование:
offtop Никогда не советуй никакие флаги кроме флагов айкара.
Бесконечный вред и проблемы он всех всегда.
offtop Просто людям не нужно лезть, если не разбираешься или не готов разобраться, это да. Айкар - золотая середина, подходят для большинства серверов. Но они не самые "Лучшие" под конкретные случаи и задачи, особенно если это высоконагруженные сервера или нужно выжимать максимум. Особенно заметно, если сервер держит 300-500 онлайна (не Folia).


Да, всё гуд.
 
Назад
Сверху Снизу