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

Туториал Как отследить высокую нагрузку на сервер

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Rlemish, 9 фев 2017.

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

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

    Баллы:
    61
    Имя в Minecraft:
    rlemish
    Всем привет!
    Рано или поздно каждый сервер сталкивается с проблемой высокой нагрузки на сервер. Все дело в архитектуре самого майнкрафта и отсутствия полноценного многопоточного ядра. Есть много проектов на эту тему, однако, это не всегда является решением. Т.к. высокая нагрузка может быть вызвана петлей в коде и какой бы мощный сервер у вас небыл - он будет проседать, иногда до нескольких TPS.
    Итак, приступим.
    Первое что нам поможет понять о том что наш сервер начал "лагать" это кол-во TPS, есть куча плагинов для измерения этого параметра. В нормальном состоянии это значение близко к 20, с тяжелыми модами 18-20. Если значение меньше нам помогут:

    1) Самый просто способ понять что случилось это профайлер встроенный в WorldGuard
    2017-02-09_08-59-39.png
    5 минут WG будет собирать информацию о нагрузке, а параметр "-p" поможет получить ссылку для более читабельного вида отчета.
    В отчете легко понять какой метод занимает процессорное время.
    2017-02-09_09-04-37.png
    2017-02-09_09-06-58.png

    2) Бывает так, что сами игроки нагружают сервер или каких-то предметов слишком много в мире, тут нам может Opis.
    Тут есть подробная информация:
    2017-02-09_09-10-39.png 2017-02-09_09-10-56.png 2017-02-09_09-11-13.png 2017-02-09_09-11-38.png 2017-02-09_09-12-26.png 2017-02-09_09-12-37.png
    Добавлю, что Opis может так же показать и нагрузку на клиент, это удобно при отладки его под слабые компьютеры.
     
    Последнее редактирование: 9 фев 2017
  2. Автор темы
    Rlemish

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

    Баллы:
    61
    Имя в Minecraft:
    rlemish
    3) Еще один инструмент схожий с Profiler WG, но более удобный по своему использованию VisualVM. Если сервер с GUI то можно запускать прям на нем. В противном случае нужно активировать JMXremote встроенный в JAVA, это можно сделать добавив аргументы при запуске сервера:
    Код:
    java -server -Xmx16G -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=HOST(нужно заменить на имя или IP) -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
    Далее указываем удаленный хост и подключаемся:
    photo_2017-02-09_09-18-47.jpg photo_2017-02-09_09-18-43.jpg photo_2017-02-09_09-18-40.jpg

    4) Небольшой мод TickProfiler так же может показать базовую нагрузку:
    2017-02-09_09-28-40.png

    P.S. Чуть позже покажу как отследить нагрузку энергии в IC2, которая обрабатывается целиком за тик и отследить этими средствами не представляется возможным.
     
    Последнее редактирование: 9 фев 2017
  3. alexandrage

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

    Баллы:
    173
    А что на счет утечкек памяти? Как то чел жаловался на проблемы и ему не помог даже VisualVM.
     
  4. L4c05t

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

    Баллы:
    78
    Имя в Minecraft:
    Lacost
    Угу, ты прав не помог:(
    И все еще не могу найти причины...
    Утечку по GC как отловить ?
     
  5. Автор темы
    Rlemish

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

    Баллы:
    61
    Имя в Minecraft:
    rlemish
    Можно снимать дампы, сравнивать их, посмотреть какие данные в памяти лежат, настроить триггеры. Зависит от сложности ситуации. В каждом случае свой подход, я описал общий подход к поиску.
     
  6. Автор темы
    Rlemish

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

    Баллы:
    61
    Имя в Minecraft:
    rlemish
    Пожалуйста, настраивайте =) Несколько атрибутов добавить нужно. Во вне лучше такие штуки вообще не открывать. Мы пользуемся VPN для доступа к внутренним ресурсам серверов. Если уж очень нужно, можно настроить ACL на внешний доступ. Вообще организация доступа к серверам - отдельная тема.
     
  7. Автор темы
    Rlemish

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

    Баллы:
    61
    Имя в Minecraft:
    rlemish
    Сделайте лучше ) Вам только спасибо скажут, а пока... увы.
     
  8. alexandrage

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

    Баллы:
    173
    Да все равно же статья ничем не помогла. Как не понимали как юзать визуалвм, так и не поймут.
     
  9. Автор темы
    Rlemish

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

    Баллы:
    61
    Имя в Minecraft:
    rlemish
    Верно. Без базовых знаний Java максимум Opis поможет что-то понять.
     
  10. L4c05t

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

    Баллы:
    78
    Имя в Minecraft:
    Lacost
    Так зачем тогда тема то?
    Тут уже есть подобные темы где говорят какие плюшки юзать для проверки нагрузки. Чем эта тема отличается от них? Туториал как минимум должен быть для тех кто не шарит. А те кто умеют это использовать то что тут написано бесполезно. Лучше научи как GC нагрузку на озу отлавливать полноценно.
     

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