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

Обсудим VisualVM и поиск "больных секторов" сервера

Тема в разделе "Управление сервером Bukkit", создана пользователем reZero, 17 апр 2022.

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

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

    Баллы:
    76
    Всем привет
    Бывает, что сервер дико лагает. У всех игроков скачет пинг за тысячу и тпс сервера проседает (однажды просел аж до 1). В тайминги уже не раз смотрел, но я там ничего в упор не вижу, поэтому решил заняться постижением visualvm мониторинга.
    Подключился удаленно к серверу и сморю на разные показатели, но ничего особо не понимаю...
    Раньше у меня было предположение, что на сервере есть утечка данных, это я и хотел проверить в visualvm, но я раньше никогда не пользовался подобными мониторингами и вовсе не знаю, как должны выглядеть графики heap usage и metaspace usage у здорового сервера, а как у плохого...
    upload_2022-4-17_11-16-22.png upload_2022-4-17_11-16-33.png
    Подскажите, пожалуйста, на скриншоте в спойлере и подскажите, что не так с этими графиками (или наоборот, все ли так?). А так же подскажите, куда нужно копать дальше, на что смотреть в visualvm чтобы определить слабые места на сервере
    Заранее всем ответившим спасибо!
     
  2. Автор темы
    reZero

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

    Баллы:
    76
    А это с другого сервера... upload_2022-4-17_13-28-33.png
     
  3. NuaN

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

    Баллы:
    96
    Имя в Minecraft:
    NuaN
    По графику процессора видно (на втором сервере), что он регулярно на 100% нагружен, поэтому и просадки. Может процессор не вывозит твой сервер, поэтому начинаются лаги?

    Попробуй поискать в интернете разные статьи и туториалы по такому запросу: "visualvm how to find memory leak"
     
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Если не разобрался с таймингами - с профилированием и подавно не разберёшься.
    Если нужно что-то посерьёзней таймингов - можно использовать плагин spark.
    К профилированию стоит прибегать лишь в том случае, если уже и spark не даёт ответов на твои вопросы.
    Для полноценного профилирования по-хорошему вообще иметь навыки программирования.

    Теперь конкретно по твоим скринам.

    Первый сервер

    Ты заскринил промежуток в 30 минут - явной утечки я не наблюдаю. Но учти, что сервер работает по 24 часа в день, и за этот промежуток уже вполне себе может обнаружиться утечка. Короче говоря, такие вещи нужно смотреть на бОльшем промежутке времени.
    Тоже самое касается и поиска утечек потоков.
    Также задам, наверно, банальный вопрос, но рестартится ли сервер хотя бы ежедневно?

    Касательно проца - за полчаса выросло его использование. Либо онлайн вырос, либо какой-то плагин начал жрать больше из-за бага. Чтобы выяснить причину - необходимо смотреть, на что конкретно уходит процессорное время. Для этого можно использовать sampling, если его результаты недостаточно точны, то instrumentation (оверхед больше, чем у sampling). Но опять же, семплирование есть и в обычном спарке, поэтому лишний раз лучше не забивать себе голову профилированием.

    Второй сервер

    Человек выше правильно сказал, что просадки TPS из-за того, что периодически проц долбится в сотку.

    Вот тут уже похоже на утечку, потому что кол-во используемой памяти очень скачает. Значит, что часто отрабатывает сборщик мусора. А сборщик мусора влияет и на загрузку процессора. Но, не факт, что основная проблема в этом - причин может быть несколько. Но для начала я бы как раз исключил фактор отработок GC и дальше смотрел бы по ситуации. Если GC придёт в норму, а использование CPU не стабилизируется, то нужно опять же семплировать или инструментировать
     
  5. Автор темы
    reZero

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

    Баллы:
    76
    В том то и дело, что либо я дурак, либо в таймингах действительно ничего кроме стандартных процессов в мире не нагружает. Карта довольно-таки большая, поэтому моя теория в том, что сервер херачит обработка всех тайлов, мобов и т.п.

    Сервер рестартится 2 раза в день. Онлайн, конечно, вырос, но я не верю что это окончательная причина. Думаю, проблема зарыта где-то в моей сборке или настройке... Таймингами я не смог обнаружить никаких плагинов, которые так сильно ипут сервер

    Касательно этого сервера - проблема была в одном плагине. Я его благополучно разобрал и пофиксил. Графики выглядят намного лучше, чем в моем последнем сообщении, но тем не менее, сервер все равно лагает...


    Уже не знаю что делать если честно
     
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Для начала попробуй спарк
     
  7. Автор темы
    reZero

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

    Баллы:
    76
    Пробовал. На деле те же тайминги, но только с парочкой своих приколюх. Может быть я не туда смотрел. Куда там смотреть надо? На что обратить внимание?
     
  8. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Режим семплирования. А там наиболее длительные по времени блоки
     

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