Сборки серверов

СливПлатные

Сейчас онлайн

  • Kawaii_qwe
  • justpremadeaccount
  • Tibidi35
  • ghieldbeef
  • DieMore777
  • chixi
  • enoteke
  • cruelwxrld
  • dfghdgfh5
  • Masonato
  • KristianKernel
  • ibdf
  • Qaz1x
  • Yamekel52
  • konicko?
  • Lisi4ka_
  • Transcendence
  • kras201397
  • noobsmoke
  • 722043kg
  • Mr_Neave
  • rabinya111
  • Angarsk2010
  • LOCUS
  • FeelingAlive
  • xlorta
  • ADMSNScraft
  • xCrazYlovely
  • wormythol
  • Werefrt
  • Kobalew
  • Scard1X
  • DenPlayStar
  • snopiL1
  • kipingGD
  • keyyyyy22
  • roman151
  • nimenno
  • FakeStudio
  • Mentaider
  • Shurshka
  • Saturk1
  • LaLaLaLaaa
  • sadsed
  • Kr1STALLICK
  • KEV1NCARTER
  • gogonadze
  • yashiro
  • masumsdwt
  • Kapybaraa
  • dfgdfgdfgdg121232
  • Frozen235
  • Juxtapose
  • cet
  • JustHater
  • Reallty
  • Viera
  • RizonChik
  • 1050TI_top
  • лшкшдщ0909
  • NemO_
  • Urchxula
  • Last.Exe
  • bl1zzard1
  • Zixi1

Помощь oom kill от контейнера и джавы

DENDOR
Версия ядра сервера
1.21+
Сервер хорошо работает со своей памятью, но со временем она забивается контейнером и джавой, что приводит к oom kill. Как можно собрать информацию о вероятных утечках и после чего исправить их?
 
GPT-4o
Чтобы собрать информацию о возможных утечках памяти в Java-приложении, вы можете использовать несколько методов и инструментов. Вот некоторые шаги, которые помогут вам диагностировать проблему:

1. Использование Java VisualVM:
- Java VisualVM — это инструмент, который позволяет мониторить производительность Java-приложений и анализировать использование памяти.
- Запустите ваше приложение с параметром -Dcom.sun.management.jmxremote, чтобы включить JMX.
- Подключитесь к вашему приложению через VisualVM и просмотрите использование памяти, а также сделайте дампы памяти.

2. Сбор дампов памяти:
- Вы можете настроить ваш сервер для создания дампов памяти при возникновении OOM (Out of Memory) ошибки.
- Для этого добавьте следующие параметры при запуске Java-приложения:
Код:
     -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump
- После сбоя вы сможете проанализировать дамп памяти с помощью инструментов, таких как Eclipse Memory Analyzer (MAT).

3. Использование профилировщиков:
- Инструменты, такие как YourKit или JProfiler, могут помочь вам в профилировании приложения и выявлении утечек памяти.
- Эти инструменты предоставляют детализированную информацию о том, какие объекты занимают память и как они связаны между собой.

4. Анализ кода:
- Проверьте код на предмет неправильного использования коллекций, неосвобожденных ресурсов (например, потоков, соединений), а также на предмет статических ссылок на объекты, которые могут препятствовать их сборке мусора.

5. Логирование:
- Добавьте логирование, чтобы отслеживать создание и уничтожение объектов, особенно тех, которые могут потреблять много памяти.

После сбора информации и анализа дампов памяти, вы сможете выявить проблемные места и внести необходимые изменения в код для устранения утечек памяти.
 
DENDOR
Чтобы собрать информацию о возможных утечках памяти в Java-приложении, вы можете использовать несколько методов и инструментов...
К слову, хост панелька - ряд методов может быть ограничен
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 187
Профайлер "No data"


AuraSkills тащит свой внутренний SnakeYAML и держит тысячи ResolverTuple объектов. 91k org.yaml.snakeyaml.error.Mark это скорее всего YAML-парсер который не освобождает объекты после разбора конфигов. Наверное вызываеться при каждном reload/обновлении скиллов игрока.

LPX обфусцированный код с 10k экземпляров o0 класса и 22k KeyImpl. он тащит свои копии PacketEvents и Adventure внутрь себя.


OOM скорее всего не от heap Java занимает 847 MB из 1.8 GB выделенных, это нормально. Убивает процесс из-за того что весь хост под завязку 177 GB из 187 GB. Либо слишком много серверов рядом, либо native память JVM выходит за пределы heap, сложно сказать точно.
 
DENDOR
Можно и нужно ли что-либо с этим делать?
Сбм
OOM скорее всего не от heap Java занимает 847 MB из 1.8 GB выделенных, это нормально. Убивает процесс из-за того что весь хост под завязку 177 GB из 187 GB
Разве это не вызвало бы проблем с p####i на том же хостинге, или у других клиентов хостинга? Ибо p####i стабильно работает, а другие пользователи не жалуются
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 187

Можно и нужно ли что-либо с этим делать?

Сбм

Разве это не вызвало бы проблем с p####i на том же хостинге, или у других клиентов хостинга? Ибо p####i стабильно работает, а другие пользователи не жалуются
Мне все еще нужен рабочий профайлер
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 187
1777189182933

попробуйте перед MaxRAMPercentage добавить -Xms128M

Вот мои аргументы:
г1гс:
java -Xms128M -XX:MaxRAMPercentage=95.0 -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 --add-modules=jdk.incubator.vector -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:+AlwaysActAsServerClassMachine -XX:+UseFMA -DLeaf.enableFMA=true -DLeaf.disable-vanilla-profiler=true -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 187
Пробовал - ничего не изменилось

Запустился на них - проблема увы не исчезла
Вероятно всего где-то утечка памяти как вариант

Нужно сделать
heapsummary
и
profiler
на пике нагрузки сервера
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 187
1777219843449
Для сервера на 1 21 11 это мало...
тем более вижу есть не мало плагинов
Вот например нагрузка моего сервера с уже прогруженым миром и 0 онлайном

1777219939426

Это с учетом G1GC, в вашем случае 5 гб это маловато, сборщик жрет свое так еще и плагинов есть не мало.

При каком онлайне сервер уже начинает падать?
 
DENDOR
Посмотреть вложение 74651
Для сервера на 1 21 11 это мало...
тем более вижу есть не мало плагинов
Вот например нагрузка моего сервера с уже прогруженым миром и 0 онлайном

Посмотреть вложение 74652

Это с учетом G1GC, в вашем случае 5 гб это маловато, сборщик жрет свое так еще и плагинов есть не мало.

При каком онлайне сервер уже начинает падать?
Ранее подобного поведения не было. В панели использование озу было 2-3гб. Что касается онлайна - потребление озу растет даже от одного игрока, хоть и медленно. Что касается плагинов - их действительно много (69), но нет каких-либо сомнительных ресурсов
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 187

Стоит попробовать изменить ядро Leaf все таки только недавно вышел в stable 1.21.11
Могу перенести сервер на свою VPS с панелью с таким же оборудованием выделив 14 GB оперативной памяти что бы наверняка узнать в чем проблема.
 
K
И что ты предлагаешь?
Предлагаю для начала не ставить флаги, назначение которых ты не знаешь. Уменьшай MaxRAMPercentage до 70.0-65.0. Тебе нужно пространство под метаспейс и нативные буферы, а не илюзия бесконечной кучи.
 
ВерхНиз