- Для версий
- 1.21.✘
- 26.✘
Основная суть
серверный защитный плагин для Minecraft, который отслеживает производительность сервера, анализирует причины падения TPS и автоматически обнаруживает конструкции и активности, способные создать сильную нагрузку на сервер.Главная задача плагина — не допустить серьёзного падения производительности из-за лаг-машин, а при обнаружении подозрительной активности временно ограничить её и, при необходимости, удалить избыточные сущности.
Плагин ориентирован именно на автоматическую защиту: администратору не требуется постоянно следить за TPS вручную.
Что отслеживает плагин?
собирает статистику по отдельным чанкам и анализирует различные виды нагрузки:- активность редстоуна;
- работу поршней;
- передачу предметов через воронки;
- работу раздатчиков и выбрасывателей;
- вагонетки;
- лодки;
- большое количество мобов;
- большое количество предметов на земле;
- частые взаимодействия с рычагами и кнопками;
- активность некоторых механизмов и block entities;
- события, связанные со sculk/наблюдателями и другими механизмами.
Также плагин способен анализировать непосредственно структуру вокруг подозрительного места — например, наличие большого количества редстоуна, поршней, воронок, наблюдателей, повторителей и других компонентов.Мониторинг TPS и MSPT
Плагин постоянно отслеживает производительность сервера.Доступны показатели:
- TPS за 1 минуту
- TPS за 5 минут
- TPS за 15 минут
- MSPT
По умолчанию используются следующие порогиПоказатель | Значение |
|---|---|
Предупреждение о падении TPS | < 19 |
Начало защитного анализа | < 18 |
Критическое состояние | < 18 |
Экстренный режим | < 12 |
Как обнаруживается лаг-машина
Плагин не ориентируется только на один показатель.Для каждого подозрительного чанка формируется activity score — оценка активности.
Разным типам активности назначается свой вес:
- предмет на земле — 1.0;
- моб — 2.5;
- передача через воронку — 1.5;
- обновление редстоуна — 0.4;
- block entity — 1.0;
- общее количество block entities — 0.2.
Кроме общей оценки существуют отдельные пороги для конкретных механизмов.Например, подозрительной может стать ситуация с большим количеством:
- обновлений редстоуна;
- срабатываний поршней;
- операций воронок;
- срабатываний раздатчиков;
- событий вагонеток;
- событий лодок;
- нажатий на рычаги.
После обнаружения плагин может дополнительно просканировать область вокруг источника и определить, действительно ли там находится крупная механическая конструкция.Система карантина
Когда источник нагрузки признаётся опасным, плагин помещает соответствующий чанк во временный карантин.Обычный карантин по умолчанию длится 10 секунд, а жёсткий — 20 секунд.
Во время карантина определённые действия могут временно блокироваться:
- работа редстоуна;
- поршни;
- воронки;
- раздатчики;
- вагонетки;
- лодки;
- некоторые взаимодействия;
- появление новых мобов;
- появление новых предметов.
Это позволяет временно остановить лаг-машину, не выключая весь сервер.Автоматическая очистка
Если в защищённом чанке слишком много сущностей, плагин может автоматически удалить избыточные объекты.В обычном режиме используются лимиты примерно:
- 48 предметов;
- 35 мобов;
- 8 вагонеток;
- 8 лодок.
В жёстком режиме лимиты уменьшаются:- 18 предметов;
- 20 мобов;
- 3 вагонетки;
- 3 лодки.
При удалении мобов предусмотрена защита важных сущностей:- именные мобы не удаляются;
- прирученные мобы не удаляются.
Игроки также не являются объектом автоматической очистки.Экстренный режим
Если TPS опускается ниже 12, запускается экстренная защита.В этом режиме плагин проходит по уже защищённым чанкам и выполняет более жёсткую очистку избыточных сущностей.
Это сделано для ситуации, когда сервер уже находится в тяжёлом состоянии и требуется быстро снизить нагрузку.
Уведомления администрации
Администраторы и персонал с permission: awtps.notifyмогут получать уведомления о проблемах.
Плагин может сообщать:
о падении TPS;
о критическом падении TPS;
о найденном источнике нагрузки;
о причине нагрузки;
о координатах проблемного места;
о количестве применённых защитных мер.
При этом в текущей конфигурации имя игрока в уведомлениях не выводится.Плагин также может дублировать информацию в консоль.
Визуальное обнаружение
При обнаружении подозрительного источника около него могут отображаться частицы.По умолчанию используется: FLAME
Частицы появляются вокруг обнаруженного места, что позволяет администрации визуально найти источник проблемы в игре.
При этом частицы показываются только при наличии игрока неподалёку от источника.
Отслеживание механизмов
В плагине присутствует внутренняя система отслеживания размещённых механизмов.Она используется для анализа того, какие механизмы могут быть связаны с обнаруженной активностью.
В конфигурации дополнительно учитываются такие потенциально опасные блоки, как:
TNT;
спавнеры;
trial spawner;
sculk sensor;
рельсы;
наблюдатели;
редстоун-лампы;
crafter;
trapped chest;
copper bulb;
daylight detector и другие.
Эта информация используется преимущественно для внутреннего анализа источника нагрузки.Команды
/Tps - Показывает состояние производительности сервера.Отображает:
TPS за 1 минуту;
TPS за 5 минут;
TPS за 15 минут;
MSPT;
состояние защиты;
количество активных карантинов;
количество активных ограничений;
количество отслеживаемых чанков.
/Tps reports Показывает последний отчёт о найденных проблемах.
В отчёте указывается:
мир;
координаты;
предполагаемая причина нагрузки.
Например:Механизмы (редстоун/поршни/раздатчики)
или
Перегрузка транспортировки предметов (воронки)
Административные команды
Все административные функции требуют:awtps.admin:
/awtps help Показывает список доступных административных команд.
/awtps reload Перезагружает конфигурацию плагина без необходимости перезапуска сервера.
/awtps report Показывает последний отчёт о найденных источниках лагов.
/awtps status Показывает текущее состояние системы защиты:
TPS;
включена ли защита;
количество карантинов;
количество активных ограничений;
количество отслеживаемых чанков.
/awtps scan Принудительно запускает проверку источников нагрузки.Это удобно, когда администратор хочет проверить ситуацию вручную, не дожидаясь автоматического запуска анализа.
/awtps protect on Включает автоматическую защиту.
/awtps protect off Выключает автоматическую защиту.
При отключении защиты также снимаются временные ограничения и очищается список защищаемых источников.
/awtps unthrottle Принудительно снимает все временные ограничения и карантины.
Permissions
awtps.tps
Доступ к команде /tps.По умолчанию доступна всем игрокам.
awtps.notify
Получение уведомлений о проблемах с производительностью.По умолчанию — только OP.
awtps.admin
Доступ к административному управлению плагином.По умолчанию — только OP.
Принцип работы
Упрощённо система работает следующим образом:Мониторинг TPS → сбор активности → поиск подозрительного чанка → расчёт нагрузки → анализ структуры → обнаружение лаг-машины → карантин → ограничение нагрузки → очистка лишних сущностей → уведомление администрации.
При нормальном TPS защита практически не вмешивается.
Если производительность начинает ухудшаться, система начинает искать конкретный источник нагрузки, а не просто реагировать на само падение TPS.
Главное преимущество
Главная особенность — локальная защита от источника нагрузки.То есть плагин старается определить, где именно находится проблема и какой тип активности её вызывает.
Например:
Это значительно удобнее, чем просто постоянно очищать весь мир или отключать механизмы на всём сервере.