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

СливПлатные

Новые сообщения

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

  • Fdgrhfbv
  • Fazzy____
  • BewenCon1
  • cmucl
  • bespaln
  • kщыешл68
  • dpotykan
  • Headus
  • BloodRayT
  • Kir_000
  • a1asky
  • ShockRaises
  • Charli
  • JohnKillswitch
  • obsidianfallr
  • Set
  • shizi122
  • devbasi
  • alamonq
  • Filon
  • FDJJDJDJD
  • crash253egf
  • 2xmasterx2
  • Lyizo
  • Anatoliy_Lacoste
  • zprahimbad
  • RastishkaSoloQ
  • danyapavlov02
  • vitya1477
  • NightMaster
  • 34234242432
  • sfsagrgasr
  • clownpierce1998

Помощь 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на.
  • 186
Профайлер "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на.
  • 186

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

Сбм

Разве это не вызвало бы проблем с p####i на том же хостинге, или у других клиентов хостинга? Ибо p####i стабильно работает, а другие пользователи не жалуются
Мне все еще нужен рабочий профайлер
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 186
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на.
  • 186
Пробовал - ничего не изменилось

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

Нужно сделать
heapsummary
и
profiler
на пике нагрузки сервера
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 186
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на.
  • 186

Стоит попробовать изменить ядро Leaf все таки только недавно вышел в stable 1.21.11
Могу перенести сервер на свою VPS с панелью с таким же оборудованием выделив 14 GB оперативной памяти что бы наверняка узнать в чем проблема.
 
ВерхНиз