Помогите Как выявить, что расходует оперативку?

CubeCode

Активный участник
Пользователь
Баллы
66
Ник в Minecraft
Dgim
Здравствуйте, столкнулся с такой проблемой. Иногда, если дней 4-7 сервер проработает без рестартов, то оперативная память будет израсходована на 11/11.5Гб из 12. Иногда бывает, что оперативка замирает на 6.5 (+-400мб) и стоит на этой отметке вплоть до 1-х суток.

На сервере играет 10-20 игроков, Ядро PaperSpigot-1.12.2 (настроена оптимизация), стоит 86 плагинов (Довольно требовательная сборка с множеством функций), процессор Intel® Xeon® E5-1650 v3. Стоит 4 самописных рукожопных плагина, но в них все возможные причины утечек уже были устранены, а ситуация с памятью сильно не изменилась. Когда шкала использованой оперативки доходит до 11.8/11.9, то она более менее перестает подниматься, но я боюсь, что может быть краш.

Также раньше были частые краши из-за outOfMemory, но сейчас, когда были убраны некоторые требовательные и устаревшие плагины + разные исправления, краши почти пропали. (пока не наблюдалось)

Может быть подскажете из-за чего еще могут возникать утечки в самописных плагинах?
Влияет ли мощность процессора на потребление оперативки?
Как замерять, какой плагин, сколько потребляет оперативки?

Заранее спасибо)
 
Также хочу сказать, что такое большое кол-во оперативки (12гб) было взято раньше, когда были краши и оперативки постоянно нехватало, возможно сейчас не требуется столько?
 
Сделай дамп памяти и произвели анализ и заплати кому-то, кто сможет сделать это за тебя
 
Вчера конкретно утечка была, что делал:
1) поставил https://www.spigotmc.org/resources/heapdump.1433/
2)
https://www.eclipse.org/downloads/d....20190826-linux.gtk.x86_64.zip&mirror_id=1190
ну я думаю у тебя линух или сам подбери
3)
./ParseHeapDump.sh файл.hprof org.eclipse.mat.api:suspects
типа такого дает отчет в зипе
дальше там есть другие параметры, погугли
 
Что-то я не вижу там функции смотреть, сколько ОЗУ какой плагин потребляет..
Доброе утро. Кто-нибудь, когда-нибудь начнёт наконец читать документацию перед тем как что-то использовать?
В плагин изначально не заложено функции "считать какой плагин сколько ОЗУ потребляет". Да и с точки зрения работы JVM твоё предложение выглядит максимально глупо.

Всё что от тебя требовалось - воспользоваться командой /heap.
На выходе получится что-то вроде такого:
68747470733a2f2f692e696d6775722e636f6d2f417a44775978712e706e67

И вот уже среди этого ты смотришь каких классов очень много наплодилось и откуда они родом.
Ещё есть команды /timing и /system, но, как я понял - для тебя это просто некст левел нанотехнологии. Поэтому про подключение нормального профайлера можно даже не заикаться.
 
Назад
Верх Низ