Давайте представим - вы владелец успешного сервера. До поры до времени всё идет хорошо, но вот игроков становится всё больше и ТПС начинает значительно падать. Вы лезете в статьи по оптимизации, но результата нет!
Чтожь, вероятно в таком случае, проблема в ваших плагинах! Тут я собрал небольшой списочек из тех плагинов, которые могут есть ваши тики, а также способы, как их можно от этого отвадить.
⦁ aJLeaderBoard
Довольно популярный плагин на топы, который может жрать невероятное количество ресурсов машины. Мало кто вдаётся в подробности, почему он ест так много, а зря, ведь если хорошо изучить репорты спарка и конфиг плагина, станет понятно, что по умолчанию в нем включено использование собственных контекстов на LuckPerms. Чтобы он не потреблял много ресурсов - достаточно будет отключить их использование и дело в шляпе.
В конфиге плагина установите register-lp-contexts: на false, после чего перезапустите сервер и радуйтесь
(спустя время работяги добились того, что теперь это отключено в плагине по умолчанию)
⦁ IllegalStack
Весьма полезный плагин, особенно на старых версиях, предотвращающий множество дюпов и багов, но также приносящий множество неприятностей, когда речь заходит о производительности. Самый ресурсозатратный процесс в этом плагине - проверка на "перестаканные" предметы т.е. на предметы, которые были застаканы, но которые таковыми быть не могут (стак кирок к примеру). Если на вашем сервере у игроков нет креатива или возможности стакать нестакуемое - лучшим решением будет частично отключить эту проверку (полностью не выйдет)
В конфиге плагина в разделе OverStack выставьте все значения на false, а также установите значение ItemScanTimer на 72000 или больше, чтобы плагин проверял инвентари игроков раз в час или реже.
⦁ AuctionHouse
Довольно популярный плагин на аукцион, но не без грешка. Дело в том, что отсчет до момента истечения предмета это конечно круто и всё такое, но поскольку он обновляет сразу все предметы, то закономерно - это вызывает лаги. Представьте, что сразу много игроков откроют меню аука и каждому нужно будет его ежесекундно обновлять? Просто ужас. Но благо, автор дал возможность нам это изменить.
В конфиге измените значение updateTicks: на 72000, что уберет постоянный отсчет времени в меню и соответственно его постоянное обновление. Да, придется пожертвовать красотой, но это всё во благо оптимизации!
Ну или можно просто заменить его на аналоги, вроде zAuctionHouse или CrazyAuctions
⦁ Matrix
Самый популярный античит для майнкрафт серверов, тем не менее не могущий похвастать хорошей производительностью... (во многом из-за говнокода..) Тем не менее, мы можем довольно эффективно улучшить его производительность, отключив в конфиге проверку на лаги при помощи tps_protection.enable: false.
Не бойтесь за возможные проблемы, которые могут возникнуть из за этого, т.к. ваш сервер наврядли будет лагать так активно, чтобы это вызвало проблемы с ложными срабатываниями. А если он не будет лагать - то зачем нам лишняя и весьма нагружающая проверка?
⦁ CoreProtect
Весьма полезный плагин на логирование и откат действий гриферов и прочих личностей. Однако в неумелых руках он может стать довольно таки вредным плагином, съедающим ваши тики и гигабайты жесткого диска.
Чтобы такого не происходило, достаточно всего лишь выставить в его конфиге следующие значения:
rollback-entities:false - отключаем восстановление убитых ентити (снижает нагрузку при откате)
skip-generic-data:true - отключаем логгирование бесполезных вещей (по типу сгорания зомби на солнце)
leaf-decay:false - отключаем логгирование опадания листвы (вам реально это нужно? сэкономьте память!)
portals:false - отключаем логгирование создания порталов (можно не отключать)
player-sessions:false - отключаем логгирование входа/выхода игроков (это есть логах сервера)
⦁ CMI
Как много в этих трёх буквах. Много функционала, многих плагинов и много съеденных тиков. Да, ест он их неплохо, но всё это решается прямыми руками настройщика!
В настройках плагина можно найти следующие строки
FileSave:
Async: false
Выставьте значение на true и увидите большой прирост производительности.
⦁ IRandomTeleport
Довольно популярный плагин на РТП. По умолчанию он регулярно проверяет плагин на наличие обновлений и делает это в основном потоке, что не есть хорошо.
Тут говорить особо не о чем. Отключите проверку на обновления, поставив checkForUpdates: на false
⦁ FAWE
Весьма полезный плагин, если вам нужно часто сетать территорию, а серверов за 1 миллион рублей пока не завезли, однако, помимо обычных функций WorldEdit - FAWE добавляет свои особенности, которые могут занимать лишние ресурсы.
В нем рекомендую отключить tick-limiter, выставив значение enabled: на false
Если же он вам нужен (к примеру для защиты от лаг машины с песком, а он так умеет), то вы можете увеличить промежуток между регулярными проверками, выставив interval: 60 (3 секунды)
⦁ TAB
Единственный и не повторимый плагин на таб, который мы все обожаем. По сути, он практически не нагружает систему, т.к. сделан так сказать на совесть. Однако, я рекомендую всем его пользователям прочесть, что автор пишет о возможной оптимизации работы его плагина
⦁ Spark
Обязательный плагин (и даже встроенный в purpur как правоприемник пейперовских таймингов), который почти в 90% случаев должен стоять у вас на сервере, чтобы в любое время вы могли определить причину лагов вашего сервера. Но тут всё не так гладко. По умолчанию Spark запускает профайлер в фоне, и не смотря на его низкий интервал - он может задействовать много ресурсов вашего сервера. Для сохранения ресурсов процессора будет весьма предпочтительно его отключить.
Для этого в конфиге spark необходимо выставить "backgroundProfiler":false
Далее пойдут так сказать "неисправимые плагины". Их нельзя никак оптимизировать, по этому за место них будут предложены альтернативы.
⦁ Citizens
Наверное, уже все знают, что с этим плагином не так, но о нем разумеется нужно рассказать. Этот плагин каждую 0.05 секунд отслеживает положение каждого игрока. Делается это всё в основном потоке. Чем больше игроков - тем больше нагруз и тем больше лагов.
В качестве альтернативы можно использовать ZNPCsPlus или ZNPCs, которые более оптимизированы.
⦁ Spartan
Будем честны - один из худших античитов для вашего сервера. Любой пользователь данного плагина расскажет вам о том, как сильно он нагружает систему. Сделать с этим ничего нельзя, т.к. автор(ы?) не умеют ни в асинхрон, ни во что. Вы можете руководствоваться моим сборником, для выбора античита себе на сервер.
⦁ HolographicDisplays
Плагин сам по себе весьма сильно нагружает сервер. Почему он столь неоптимизирован - лично я не смотрел, но судя по всему - дело в протоколлибе.
На замену ему предложу плагин DecentHolograms. В нем есть миграция с HolographicDisplays, так что проблем с переходом быть не должно, если конечно у вас нет плагинов, зависящих от HD.
⦁ Imageonmap
Опишу всё просто. Данный плагин просто поедает невероятное количество ресурсов при размещении больших картинок.
Я просто дам вам аналоги, которые будут в разы производительнее и эффективнее: FramedImage, ImageFrame
⦁ JavaScriptExpansion (для Papi)
По сути сам по себе не нагружает и за частую очень полезен, ОДНАКО при неправильном обращении или чрезмерном использовании он может создать для вас огромные проблемы! Лично я столкнулся с таковой в виде огромной утечки памяти (там даже issue есть), а другой человек, который просил помощи в одном из западных дискорд каналов - с бедами с производительностью (смотри скрины ниже).
Если вы используете данное расширение - убедитесь, что он не причиняет вашему серверу вреда (что невозможно физически), а также убедитесь, что все скрипты написаны корректно, чтобы избежать нагрузки.

⦁ Chatex
На удивление довольно жрущий плагин на чат. Нет, ест он не ваши тики, а вашу память! Для сравнения покажу вам 2 скриншота. 1 - с chatex, 2 - без chatex (В качестве альтернативы был использован Chatty)
Да, это можно исправить, удалив задержку на чат, отключив антиспам, но какой в этом толк, коли есть альтернатива?


А теперь немного поговорим про возможные просчеты в производительности в других плагинах и как повысить производительность еще больше. Эффект от этого будет разнообразный, однако, если вы хотите добиться идеала, то это может помочь.
1) Удалите ненужные плагины
Речь идет о плагинах, имеющих в себе функционал других плагинов. К примеру для отключения входа и выхода вам за частую не нужен отдельный плагин. Больше, о таких примерах вы можете почитать в моей статье: Плагины, которые имеют в себе функции других плагинов или скручиваем лишние колёса
(Кол-во плагинов на деле влияет на сервер не особо сильно, но за частую доп.плагины фактически не нужны, т.к. могут выполнять задачи куда как медленнее, чем аналоги, в которых это вшито)
2) Отключите проверки на обновления в плагинах
Да, этого лучше не делать без необходимости, но так вы можете сэкономить немного ресурсов процессора, если плагины проверяют обновления регулярно и особенно, если делают это в основном потоке.
3) Отключите метрики(?)
Этого тоже лучше не делать, ведь метрики едят ну совсем не много ресурсов, но вот если у вас очень слабая машина и вам нужен буквально каждый процентик процессора - можно будет отключить их полностью. Отключите их во всех плагинах, где можете, а также в папке bStats в конфиге выставьте enabled=false
Ну вот и всё, хоккей. В будущем этот список может быть дополнен и вы можете предлагать сюда свои плагины, которые могут замедлять работу сервера.
Чтожь, вероятно в таком случае, проблема в ваших плагинах! Тут я собрал небольшой списочек из тех плагинов, которые могут есть ваши тики, а также способы, как их можно от этого отвадить.
Удаляйте свой мусор и заменяйте его на Paper (или его форки) и LuckPerms соответственно
⦁ aJLeaderBoard
Довольно популярный плагин на топы, который может жрать невероятное количество ресурсов машины. Мало кто вдаётся в подробности, почему он ест так много, а зря, ведь если хорошо изучить репорты спарка и конфиг плагина, станет понятно, что по умолчанию в нем включено использование собственных контекстов на LuckPerms. Чтобы он не потреблял много ресурсов - достаточно будет отключить их использование и дело в шляпе.
В конфиге плагина установите register-lp-contexts: на false, после чего перезапустите сервер и радуйтесь
(спустя время работяги добились того, что теперь это отключено в плагине по умолчанию)
⦁ IllegalStack
Весьма полезный плагин, особенно на старых версиях, предотвращающий множество дюпов и багов, но также приносящий множество неприятностей, когда речь заходит о производительности. Самый ресурсозатратный процесс в этом плагине - проверка на "перестаканные" предметы т.е. на предметы, которые были застаканы, но которые таковыми быть не могут (стак кирок к примеру). Если на вашем сервере у игроков нет креатива или возможности стакать нестакуемое - лучшим решением будет частично отключить эту проверку (полностью не выйдет)
В конфиге плагина в разделе OverStack выставьте все значения на false, а также установите значение ItemScanTimer на 72000 или больше, чтобы плагин проверял инвентари игроков раз в час или реже.
⦁ AuctionHouse
Довольно популярный плагин на аукцион, но не без грешка. Дело в том, что отсчет до момента истечения предмета это конечно круто и всё такое, но поскольку он обновляет сразу все предметы, то закономерно - это вызывает лаги. Представьте, что сразу много игроков откроют меню аука и каждому нужно будет его ежесекундно обновлять? Просто ужас. Но благо, автор дал возможность нам это изменить.
В конфиге измените значение updateTicks: на 72000, что уберет постоянный отсчет времени в меню и соответственно его постоянное обновление. Да, придется пожертвовать красотой, но это всё во благо оптимизации!
Ну или можно просто заменить его на аналоги, вроде zAuctionHouse или CrazyAuctions
⦁ Matrix
Самый популярный античит для майнкрафт серверов, тем не менее не могущий похвастать хорошей производительностью... (
Не бойтесь за возможные проблемы, которые могут возникнуть из за этого, т.к. ваш сервер наврядли будет лагать так активно, чтобы это вызвало проблемы с ложными срабатываниями. А если он не будет лагать - то зачем нам лишняя и весьма нагружающая проверка?
⦁ CoreProtect
Весьма полезный плагин на логирование и откат действий гриферов и прочих личностей. Однако в неумелых руках он может стать довольно таки вредным плагином, съедающим ваши тики и гигабайты жесткого диска.
Чтобы такого не происходило, достаточно всего лишь выставить в его конфиге следующие значения:
rollback-entities:false - отключаем восстановление убитых ентити (снижает нагрузку при откате)
skip-generic-data:true - отключаем логгирование бесполезных вещей (по типу сгорания зомби на солнце)
leaf-decay:false - отключаем логгирование опадания листвы (вам реально это нужно? сэкономьте память!)
portals:false - отключаем логгирование создания порталов (можно не отключать)
player-sessions:false - отключаем логгирование входа/выхода игроков (это есть логах сервера)
⦁ CMI
Как много в этих трёх буквах. Много функционала, многих плагинов и много съеденных тиков. Да, ест он их неплохо, но всё это решается прямыми руками настройщика!
В настройках плагина можно найти следующие строки
FileSave:
Async: false
Выставьте значение на true и увидите большой прирост производительности.
⦁ IRandomTeleport
Довольно популярный плагин на РТП. По умолчанию он регулярно проверяет плагин на наличие обновлений и делает это в основном потоке, что не есть хорошо.
Тут говорить особо не о чем. Отключите проверку на обновления, поставив checkForUpdates: на false
⦁ FAWE
Весьма полезный плагин, если вам нужно часто сетать территорию, а серверов за 1 миллион рублей пока не завезли, однако, помимо обычных функций WorldEdit - FAWE добавляет свои особенности, которые могут занимать лишние ресурсы.
В нем рекомендую отключить tick-limiter, выставив значение enabled: на false
Если же он вам нужен (к примеру для защиты от лаг машины с песком, а он так умеет), то вы можете увеличить промежуток между регулярными проверками, выставив interval: 60 (3 секунды)
⦁ TAB
Единственный и не повторимый плагин на таб, который мы все обожаем. По сути, он практически не нагружает систему, т.к. сделан так сказать на совесть. Однако, я рекомендую всем его пользователям прочесть, что автор пишет о возможной оптимизации работы его плагина
⦁ Spark
Обязательный плагин (и даже встроенный в purpur как правоприемник пейперовских таймингов), который почти в 90% случаев должен стоять у вас на сервере, чтобы в любое время вы могли определить причину лагов вашего сервера. Но тут всё не так гладко. По умолчанию Spark запускает профайлер в фоне, и не смотря на его низкий интервал - он может задействовать много ресурсов вашего сервера. Для сохранения ресурсов процессора будет весьма предпочтительно его отключить.
Для этого в конфиге spark необходимо выставить "backgroundProfiler":false
Далее пойдут так сказать "неисправимые плагины". Их нельзя никак оптимизировать, по этому за место них будут предложены альтернативы.
⦁ Citizens
Наверное, уже все знают, что с этим плагином не так, но о нем разумеется нужно рассказать. Этот плагин каждую 0.05 секунд отслеживает положение каждого игрока. Делается это всё в основном потоке. Чем больше игроков - тем больше нагруз и тем больше лагов.
В качестве альтернативы можно использовать ZNPCsPlus или ZNPCs, которые более оптимизированы.
⦁ Spartan
Будем честны - один из худших античитов для вашего сервера. Любой пользователь данного плагина расскажет вам о том, как сильно он нагружает систему. Сделать с этим ничего нельзя, т.к. автор(ы?) не умеют ни в асинхрон, ни во что. Вы можете руководствоваться моим сборником, для выбора античита себе на сервер.
⦁ HolographicDisplays
Плагин сам по себе весьма сильно нагружает сервер. Почему он столь неоптимизирован - лично я не смотрел, но судя по всему - дело в протоколлибе.
На замену ему предложу плагин DecentHolograms. В нем есть миграция с HolographicDisplays, так что проблем с переходом быть не должно, если конечно у вас нет плагинов, зависящих от HD.
⦁ Imageonmap
Опишу всё просто. Данный плагин просто поедает невероятное количество ресурсов при размещении больших картинок.
Я просто дам вам аналоги, которые будут в разы производительнее и эффективнее: FramedImage, ImageFrame
⦁ JavaScriptExpansion (для Papi)
По сути сам по себе не нагружает и за частую очень полезен, ОДНАКО при неправильном обращении или чрезмерном использовании он может создать для вас огромные проблемы! Лично я столкнулся с таковой в виде огромной утечки памяти (там даже issue есть), а другой человек, который просил помощи в одном из западных дискорд каналов - с бедами с производительностью (смотри скрины ниже).
Если вы используете данное расширение - убедитесь, что он не причиняет вашему серверу вреда (что невозможно физически), а также убедитесь, что все скрипты написаны корректно, чтобы избежать нагрузки.
⦁ Chatex
На удивление довольно жрущий плагин на чат. Нет, ест он не ваши тики, а вашу память! Для сравнения покажу вам 2 скриншота. 1 - с chatex, 2 - без chatex (В качестве альтернативы был использован Chatty)
Да, это можно исправить, удалив задержку на чат, отключив антиспам, но какой в этом толк, коли есть альтернатива?
А теперь немного поговорим про возможные просчеты в производительности в других плагинах и как повысить производительность еще больше. Эффект от этого будет разнообразный, однако, если вы хотите добиться идеала, то это может помочь.
1) Удалите ненужные плагины
Речь идет о плагинах, имеющих в себе функционал других плагинов. К примеру для отключения входа и выхода вам за частую не нужен отдельный плагин. Больше, о таких примерах вы можете почитать в моей статье: Плагины, которые имеют в себе функции других плагинов или скручиваем лишние колёса
(Кол-во плагинов на деле влияет на сервер не особо сильно, но за частую доп.плагины фактически не нужны, т.к. могут выполнять задачи куда как медленнее, чем аналоги, в которых это вшито)
2) Отключите проверки на обновления в плагинах
Да, этого лучше не делать без необходимости, но так вы можете сэкономить немного ресурсов процессора, если плагины проверяют обновления регулярно и особенно, если делают это в основном потоке.
3) Отключите метрики(?)
Этого тоже лучше не делать, ведь метрики едят ну совсем не много ресурсов, но вот если у вас очень слабая машина и вам нужен буквально каждый процентик процессора - можно будет отключить их полностью. Отключите их во всех плагинах, где можете, а также в папке bStats в конфиге выставьте enabled=false
Ну вот и всё, хоккей. В будущем этот список может быть дополнен и вы можете предлагать сюда свои плагины, которые могут замедлять работу сервера.