Spigot Timings
Способ найти лаги
В данной теме опишу простой способ поиска проблемных компонентов сервера, которые влияют на производительность на примере Timings (далее тайминг).
В верхней части отчета, есть несколько колонок, общее данные:
- Total: общее время обработки событий.
- Sample Time: Время, потраченное на сбор пакета для отчета.
- Average Entities: Среднее кол-во активных энити/ общее кол-во энити.
Entities все динамические и движущиеся объекты в мире Minecraft
- Average Players: Среднее кол-во подгруженных игроков в сборе данных.
- Average TPS: Средний TPS в течении сбора данных.
В заголовках разделов для плагинов, есть два пункта содержащие имя и версию плагина
а так же параметры:
- Total: Общее время активности плагина
- Pct: Процент активности плагина от параметра Sample Time для этого плагина.
Каждая секция имеет несколько столбцов данных:
- Pct Total: Процент времени для определенного процесса, затраченного на обработку событий от головного параметра Total, то есть от общего времени активности плагина. .
Расчет: Total / Sample Time
- Pct Tick: Процент на один такт (50 ms) при обработки события.
Расчет: Среднее / 50ms
- Total: Общее время, затраченное на обработку события.
- Avg: Среднее кол-во времени за такт.
- Count: Общее кол-во раз, когда данный процесс обрабатывался плагином.
- Event: Имя процесса.
Pct Total является хорошим показателем общего уровня такта сервера (TPS). Если определенное событие занимает большое количество времени чтобы обработать себя, это может означать, что он несет ответственность за лаги, потому что для обработки данного процесса затрачивается большее кол-во тактов, соответственно часть из них откидывается.
Колонка Pct Tick является полезной для выявления подвисаний действий у игроков (к примеру задержка отправки сообщений в чат или авторизация на сервере). Например, если ваши игроки жалуются что сервер повисает только при входе в игру, было бы целесообразно изучить процесс PlayerJoinEvent. Большое количество в колонке Pct Tick и низкое число в столбце Count может означать, что плагин тратит много времени на один такт обработки события, и таким образом, вызывая подвисания. В сочетании с Avg, это будет означать, что плагин является окончательной причиной устойчивых, повторяющихся лагов.
Сбор информации в парсер
В данной графе я опишу каким способом можно получить информацию в Aikar's timing parser
-
Во-первых, остановить сервер, чтобы предотвратить перезапись изменений, которые будут внесены.
-
Открыть bukkit.yml текстовом редакторе.
-
Найти пункт plugin-profiling логическое и изменить его с false по умолчанию на true.
-
Сохранить данные и запустить сервер
Рекомендуется формировать отчет через несколько минут после запуска окончательной сборки сервера и наполнением его игроками. Для включения формирования отчета используйте команду /timings on
Сообщение отредактировал temoon: 17 Июль 2015 - 5:01