Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Как оптимизировать сервер. Выжимаем максимум из плагинов. [2.0]
В этой статье мы разберем оптимизацию сервера и зачем она вообще нужна.
Прошлая статья была неактуальной, поскольку была написана еще в 2021 году, спустя всё это время появилось много новой информации по оптимизации, которую мы разместили здесь.
"Прошлая статья была неактуальной, поскольку была написана еще в 2021 году, спустя всё это время появилось много новой информации по оптимизации, которую мы разместили здесь."
Ну давай посмотрим, насколько актуальная она у нас.
1) Как проверить оптимизацию сервера?
"MSPT < 20 (до 35 плохо, но не критично. Выше будет -сервер)"
А кто сказал? А сами то играли на сервере с МСПТ > 35? Ощущали ли как это играется? Нет, я конечно не отрицаю, что если больше это не очень хорошо, но какой был смысл давать ИМЕННО ТАКОЕ значение?
Нет, ну на самом деле хорошо за 3 года так и не изменить свой взгляд на мир и думать что "меньше хорошо, а больше ужасно", держите планку кАчИсТвА, но это работает немного не так.
Напоминаю определение MSPT - Milli Seconds Per Tick. Также напоминаю, что в майнкрафте у нас 20 тпс. Используя математику за 2 класс (умножение, нифига ж себе!) можно вычислить, что максимальное время тика за которое укладывается в рамки 20 тпс - 50 МИЛИСЕКУНД, из чего можно сделать заключение, что если ваш МСПТ не превышает 50 - то на сервере вы можете играть вполне себе спокойно, не чувствуя лагов.
А следовательно сказать нужно было как минимум, что если мспт > 50 то -сервер, и то - даже это будет не так, ведь даже с 60 мспт и 16.6 тпс (с учетом, что у нас каждый тик длится 60 мс, а не только некоторые отдельные) люди вполне способны играть, хоть и с невероятным дискомфортом, что однако нельзя назвать "МИНУС СЕРВЕР" "Напишите /timings on, подождите 3 минуты и пропишите /timings report. Если в процентах будет нагрузка выше 40%, все плохо. (Устаревший способ, не такой эффективный, как третий)
Используйте плагин Spark
Авторизуйтесь для просмотра ссылок.
. После запуска сервера спустя 5 минут напишите /spark —profiler stop, вам выдается ссылка, по которой можно отследить всю нагрузку."
Ну, в целом, за продвижение таймингов можно и поругать, но раз уж упомянули, что спарк штука более приоритетная - можно сказать что прогресс где-то есть.
"Как бы это банально не звучало, но просто поставьте плагин WorldBorder и ограничьте количество блоков в КАЖДОМ из миров. Не только на спавне, или в мире для РТП, а на всех мирах, что есть у вас на сервере. Делается это одной простой командой. Телепортируемся в нужный мир и пишем: /worldborder set [кол-во блоков], мы рекомендуем ставить 5.000, но если у вас есть хотя бы 150+ онлайна, то поставьте 7.000 блоков."
"После устанавливаем плагин
Авторизуйтесь для просмотра ссылок.
, перезагружаем сервер и прогружаем чанки."
Прогресс преследовал их, но они были быстрее. Да, живя сознанием в 2021 году, когда все делают гриферские сервера на 1.12.2 данный совет бы безусловно был бы полезен (нет, не был бы, по тому что тогда каждый школьник так или иначе уже знал про этот плагин...).
Но у нас название говорит не про 21 год, а про нифига себе аж 24, а следовательно наверное можно было бы изучить вопрос, рассказать про Chunky по человечески, можно было за 3 года узнать о существовании Chunky border вместо того чтобы советовать устарвеший мусорный плагин? Может быть можно было нифига себе изучить работу плагина Chunky не ограничиваясь 2мя командами и узнать про ВАНИЛЬНУЮ(!) команду /worldborder, при помощи которой можно АЖ без плагинов поставить грани мира.
Но хотя нет, планку надо держать, а по этому, че тут возникать то, правильно?
3) Используйте флаги в запускаторе
Вау всё правильно, хоть ошибиться и было нельзя.
4) Установите плагины для оптимизации
Ура моя любимая рубрика, раскрывающая идиотизм любых горе-оптимизаторов.
"Оптимизация на разных версиях отличается, но на все версии рекомендуем вам ставить плагины
Авторизуйтесь для просмотра ссылок.
&
Авторизуйтесь для просмотра ссылок.
. Второй не только помогает отследить нагрузку на сервер (такими командами как /tpsbar, и.т.д), но и также дает буст небольшой оптимизации вашего сервера. Используя Garbage Collector, плагин постоянно снижает потребление оперативной памяти, когда оно поднимается высоко.
По желанию можете установить так же плагин
Авторизуйтесь для просмотра ссылок.
(1.14+ рекомендуем), при просадке TPS, если например, у вас на сервере лаг-машина, он отключает физику на 3 минуты, что может спасти сервер от падения. В остальном не очень полезный плагин, но если вы испытываете проблемы с лаг-машинами, то он вам поможет."
1) Повторяю для тупых:
Дорогой и многонеуважаемый автор данной цитаты, укажите нам пожалуйста, в каком месте спарк вызывает сборщик мусора и в каком месте он даёт прирост производительности сервера?
Разрушу надежды желающих увидеть ответ - его не будет, в связи с тем, что spark ничего из описанного касательно оптимизации не делает.
И даже напротив, бекграунд профайлер способен создать дополнительную нагрузку на ваш процессор своим регулярным замером. Спарк является лишь профилировщиком и ни чем иным.
2) Повторяю для тупых: все "оптимизирующие" функции clear lagg уже как лет 7 были добавлены в Paper, если не в спигот.
И не нужно большого ума, чтобы данный факт проверить.
Вот все оптимизирующие функции которые есть в ClearLagg:
Option to reduce TNT lag or chain reactions - spigot.yml / max-tnt-per-tick
Option to limit mob spawners - paper.yml / mob-spawner-tick-rate: 5
Locate overcrowded/abused chunks - paper.yml / delay-chunk-unloads-by и max-auto-save-chunks-per-tick
Limit AI processing attributes to save CPU - spigot.yml / nerf-spawner-mobs
Ну и неупомянутый на спиготе очищатель лута с пола - spigot.yml / item-despawn-rate и arrow-despawn-rate
А также заострю внимание на данной фразе - "Используя Garbage Collector, плагин постоянно снижает потребление оперативной памяти, когда оно поднимается высоко."
А можно пожалуйста предоставить развернутую информацию по тому, как это работает? Желательно со строчкой кода, который вызывает Garbage Collector?
После же того, как ты её предоставишь, прикрепи пожалуйста к своему ответу описание принципа работы флага из флагов айкара под названием +DisableExplicitGC
Очень жду.
Хотя ладно, а то от перенапряжения мозг горе-оптимизатора не выдержит и расплавится, напишу сразу тут.
ClearrLagg
Авторизуйтесь для просмотра ссылок.
. Флаг +DisableExplicitGC же ОТКЛЮЧАЕТ плагинам такую возможность. Цитата
Авторизуйтесь для просмотра ссылок.
: "Многие плагины думают, что они знают, как управлять памятью, и пытаются вызвать сборку мусора. Плагины, которые так делают, вызывают полную сборку мусора, что приводит к огромному скачку лага. Этот флаг запрещает плагинам пытаться делать это, защищая вас от их плохого кода."
Но зачем знать что делают флаги запуска и как работает гарбадж коллектор, мы же тут сервер оптимизируем в конце концов!
5) Ядра.
Где упоминание хотя бы одного из форков на 1.16.5/1.20+?
А ну да, мы же просто приписали 2024 из принципа, когда на деле живем в 2021 и других ядер на эти версии кроме бумаги не существует.
"Установите spawn-limits на monsters: 10, animals: 5, water-animals: 2, ambient: 0. Так вы сократите спавн мобов."
Нет, вы его скорее убьёте. Нет, конечно, опять же, не поспорить, для 1.12.2 грифа где на мобов всем плевать такие значения НУ МОЖЕТ БЫТЬ будут полезны, если сервер стоит на бесплатном панельном мусоре, однако для современных анархий, где мобофермы это святая святых - данные значения неприемлимы.
"Установите period-in-ticks на 300. Уменьшаем время, за которое будет выгружены неактивные чанки."
Ну тут нельзя ошибиться
"Установите query-plugins на false, чтобы нельзя было узнать плагины вашего сервера через левые ресурсы."
Не через левые ресурсы, а через query (изучаем server.properties и функцию enable-querry), который за частую используется для мониторингов, просто придирка. "Уменьшите entity-activation-range. Этот параметр отвечает за отображение сущностей в определенном радиусе. Для максимальной оптимизации поставьте значения как на скриншоте. Мобы за пределами этого диапазона будут отмечаться реже. При желании можно повысить и до 32, но еще выше не рекомендуем."
Пупа и лупа пришли в бухгалтерию но там всё перепутали.
За ОТОБРАЖЕНИЕ сущностей отвечает entity-tracking-range, в то время как entity-activation-range отвечает за АКТИВАЦИЮ сущностей (т.е. за то, на каком расстоянии от игрока они начнут выполнять свою рутину, по типу рандомного движения и т.п.).
entity-tracking-range как раз таки нет необходимости уменьшать, если конечно вы не хотите чтобы игроки ходили на сервере как слепые кроты изредка натыкаясь на мобов, которые возникают перед ними из воздуха.
"Установите tick-inactive-villagers на false. Дополнительная экономия ресурсов."
Нельзя было ошибиться "Установите max-joins-per-tick: 1. Это не позволит заходить игрокам чаще, чем в 1 тик. Полезно, если вы перезапускаете сервер на проде и у вас большой онлайн."
Нельзя было ошибиться
"Установите значение на 2. Сжатые объекты будут меньше сталкиваться. Это экономия TPS."
Нельзя было ошибиться
"Установите значение на true. Это предотвратит попадание игроков в неактивный чанк.
Нельзя было ошибиться
Но, это всё?
Неужели реально всё?
Ну, ладно, хотя бы мусора на сей раз меньше, но в целом информации не сильно больше, погоды такая поверхностная оптимизация конфигов не сделает
7) Не надейтесь только на количество ОЗУ
А я напоминаю про то что данный пункт написал бестолковый "оптимизатор" который не смыслит в принципе работы сборщика мусора (см выше про clearlagg)
Тут уже было всё обговорено.
8) CMI или Essentials?
Повторю почти слово в слово то, что говорил в прошлый раз
Полу-бесполезный раздел про то, как "оптимизировать" CMI.
Хотя на этот раз про то, что можно включить сохранение файлов в многопотоке сказано! Таки учли притензию, учли
9) Устраните багоюзеров "Есть такие плагины как:
Авторизуйтесь для просмотра ссылок.
- Плагин, фиксящий множество пакет-эксплоитов на вашем сервере.
Авторизуйтесь для просмотра ссылок.
- поможет скрыть команды плагинов.
Авторизуйтесь для просмотра ссылок.
- Плагин, запрещающий создавать лаг-машины.
Авторизуйтесь для просмотра ссылок.
- Отличный плагин от эксплоитов, крашей, и.т.д."
Вижу, вижу, что учли наилучшие пожелания! На сей раз ошибок нет
10) Не используйте слитые плагины с форумов, пабликов ВК и ТГ каналов
Ошибки быть не могло
11) Не перегружайте сервер плагинами "Много плагинов = Больше нагрузка."
Напоминаю - это не так, а почему - описано тут в 9 пункте https://spigotmc.ru/threads/o-tom-kak-framedev-server-optimizirovali.13060/
Тем не менее примечание "Если вы действительно знаете, зачем вам каждый плагин и какая от него нагрузка, то это не проблема." есть и это уже плюс.
12) Итог
Тащемто, что я могу сказать... Не смотря на то, что в АБНАВЛЕННОЙ статье учли аспекты моего первого разбора, его главная мысль прошла мимо.
Автор статьи всё так же не разбирается в вопросе в достаточной степени, что значит что статья как и предыдущая не несет в себе никакой практической ценности и всё еще в ряде аспектов даёт вредные советы, которым следовать уж точно не стоит.
Желаю автору всё же изучить матчасть.
Почему вы называете Paper PaperSpigotом, когда этому названию уже ~10 лет? Вы майнкрафт тоже рубидангом называете?
А ещё лагассист уже год не поддерживается. Да и все эти плагины, содержащие слова "Lag" "AntiBot" "Fix" в большинстве случаев не работают. В ядре и так есть то, что предоставляют эти плагины. Вот только если ядро и не вызывает ивент, при плагине он обрабатывается, но отменяется. Лишняя нагрузка, не приводящая ни к чему, кроме как повышения мспт.
Написали "Прошлая статья была неактуальной", а по итогу написали такую же неактуальную статью
Вам необходимо зарегистрироваться для просмотра изображений-вложений
знаю, ну хоть ничего не будет их обрабатывать. ну и например если понизить спавн мобов в ядре то ивентов на спавн моба будет меньше, если плагином то их будет столько же, но ещё и процессору придётся обрабатывать логику плагина на отмену этого ивента. И всё это в однопотоке
В нём полезно только CustomAi ну ещё ConsoleFilter может оказаться полезным дополнением. Всё остальное либо не работает корректно, либо бесполезно, либо наоборот увеличивает лаги.
там наоборот на версиях младше производительность ужасная, а многопоток особо ничем не помогает, всё равно большинство тяжёлых процессов идут в однопотоке