1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Помощь", создана пользователем CubeCode, 24 ноя 2019.

  1. Автор темы
    CubeCode

    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, но сейчас, когда были убраны некоторые требовательные и устаревшие плагины + разные исправления, краши почти пропали. (пока не наблюдалось)

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

    Заранее спасибо)
     
  2. Автор темы
    CubeCode

    CubeCode Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Dgim
    Также хочу сказать, что такое большое кол-во оперативки (12гб) было взято раньше, когда были краши и оперативки постоянно нехватало, возможно сейчас не требуется столько?
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Профайлером смотри.
     
  4. Автор темы
    CubeCode

    CubeCode Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Dgim
    А если не VDS?
     
  5. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    LagMonitor ставишь и смотришь из консоли уже.
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну тогда все - выбрасывай.
     
  7. Автор темы
    CubeCode

    CubeCode Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Dgim
    Что-то я не вижу там функции смотреть, сколько ОЗУ какой плагин потребляет..
     
  8. Автор темы
    CubeCode

    CubeCode Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Dgim
    Влияет ли мощность процессора на потребление оперативки?
     
  9. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Сделай дамп памяти и произвели анализ и заплати кому-то, кто сможет сделать это за тебя
     
  10. SimMiMo

    SimMiMo Активный участник Пользователь

    Баллы:
    76
    Вчера конкретно утечка была, что делал:
    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
    типа такого дает отчет в зипе
    дальше там есть другие параметры, погугли
     
  11. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Доброе утро. Кто-нибудь, когда-нибудь начнёт наконец читать документацию перед тем как что-то использовать?
    В плагин изначально не заложено функции "считать какой плагин сколько ОЗУ потребляет". Да и с точки зрения работы JVM твоё предложение выглядит максимально глупо.

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

Поделиться этой страницей