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

СливПлатные

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

  • Sheimi
  • aezakmi228
  • GameCorpYt
  • starrkkaa
  • PantherPK
  • d1n
  • yanngotti
  • Aorus
  • Trays
  • n1zxc
  • darkizis3234
  • Limitely
  • eaeucas
  • ser37aaaaaa
  • kostlyavyi
  • ttttttjshddh
  • Brayan_XD_YT
  • Miller_00
  • QEAPS
  • Kitak
  • BloodRayT
  • ranten
  • Sckolty
  • Howertt
  • Zigono
  • Tanri
  • LuisDybala
  • testujemy
  • MonSoli
  • Fjavaw2k21423
  • poapap
  • tony56734
  • FoxZen
  • BellSton
  • Lyokha_10
  • difix001-
  • arlemite47
  • adsdasdasdsA
  • hiimmat
  • hdhxdhdhsj
  • hieutruong
  • Zreyk
  • kostyangg
  • Artem324
  • pazaz
  • giang12535
  • consers
  • Tednikea
  • lavash9982
  • ArtemShel3
  • nikitamir120307
  • mrx08
  • Vinsent
  • magmahvh
  • JordyMaquinola
  • Roman_Svyatkov
  • mister_tru
  • kryp
  • otakulolero38
  • Blaaasz
  • shina
  • Spirie
  • al7tt
  • VoidStudio
  • meykez

Помощь 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), но нет каких-либо сомнительных ресурсов
 
ВерхНиз