Как оптимизировать сервер.
Выжимаем максимум из плагинов.
[2.0]


В этой статье мы разберем оптимизацию сервера и зачем она вообще нужна.

Прошлая статья была неактуальной, поскольку была написана еще в 2021 году, спустя всё это время появилось много новой информации по оптимизации, которую мы разместили здесь.
Как проверить оптимизацию сервера?

Есть несколько способов проверить, насколько хорошо оптимизирован ваш сервер.

Для начала напишите /tps, хорошие показатели:
TPS 19.9 - 20
MSPT < 20 (до 35 плохо, но не критично. Выше будет -сервер)

Если у вас TPS ниже, а MSPT выше, стоит задуматься об оптимизации вашего сервера.

Напишите /timings on, подождите 3 минуты и пропишите /timings report. Если в процентах будет нагрузка выше 40%, все плохо. (Устаревший способ, не такой эффективный, как третий)
Используйте плагин Spark (ТЫК). После запуска сервера спустя 5 минут напишите /spark —profiler stop, вам выдается ссылка, по которой можно отследить всю нагрузку.

Более детальная инструкция по плагину Spark написана пользователем ruspigot - здесь
Как прогрузить чанки?

Как бы это банально не звучало, но просто поставьте плагин WorldBorder и ограничьте количество блоков в КАЖДОМ из миров. Не только на спавне, или в мире для РТП, а на всех мирах, что есть у вас на сервере. Делается это одной простой командой. Телепортируемся в нужный мир и пишем: /worldborder set [кол-во блоков], мы рекомендуем ставить 5.000, но если у вас есть хотя бы 150+ онлайна, то поставьте 7.000 блоков.

После устанавливаем плагин Chunky, перезагружаем сервер и прогружаем чанки.

Прогрузить их нужно обязательно в каждом мире.
В нашем случае у нас есть world, world_nether, world_the_end.

  1. Выбираем мир - /chunky world world
  2. Ставим центер - /chunky center x z
  3. Устанавливаем радиус - /chunky radius 2500 (ВАЖНО. Число из этой команды умножайте на 2, столько блоков и будет прогружено. Если ваш мир 5.000 блоков, делите на 2 и такое число вписывайте в команду)
  4. Запускаем процесс - /chunky start.
  5. Ждём. Ни в коем случае не выключаем сервер. Консоль нас будет информировать о прогрессе.
Используйте флаги в запускаторе

Используя сайт flags.sh, выберите кол-во оперативной памяти и вы получите флаги, которые нужно будет вставить в запускатор. Полностью копируете весь текст, что вам выдал сайт, вставляете в start.sh (start.bat). Готово!
Установите плагины для оптимизации

Оптимизация на разных версиях отличается, но на все версии рекомендуем вам ставить плагины Spark & ClearLagg. Второй не только помогает отследить нагрузку на сервер (такими командами как /tpsbar, и.т.д), но и также дает буст небольшой оптимизации вашего сервера. Используя Garbage Collector, плагин постоянно снижает потребление оперативной памяти, когда оно поднимается высоко.

Конечно, функции ClearLagg уже придумали в paper.yml, но т.к эта статья рассчитана на тех, кто не сильно разбирается в оптимизации, грузить тяжелой для восприятия информацией их нет смысла. Плагин не создаст критическую нагрузку и визуально будет понятнее новичкам.

По желанию можете установить так же плагин LagAssist (1.14+ рекомендуем), при просадке TPS, если например, у вас на сервере лаг-машина, он отключает физику на 3 минуты, что может спасти сервер от падения. В остальном не очень полезный плагин, но если вы испытываете проблемы с лаг-машинами, то он вам поможет.

ClearLagg, отображение используемой ОЗУ
Ядра.

Ядро. На нем держится весь ваш сервер, на нем написан каждый плагин и именно от ядра тоже очень многое зависит на вашем проекте. Пропишите /about, если у вас стоит Spigot, или CraftBukkit, поменяйте их на другие ядра:

PaperSpigot - 1.8 - 1.20. Самое стандратное, но при этом отличное ядро.
Purpur - Более производительный вариант Paper. Для анархий и ванил он будет полезен дополнительными функциями.
Dionysus - Самый лучший вариант для 1.12 серверов.

Bukkit.yml, Spigot.yml, Paper.yml

Bukkit.yml:
1. Установите spawn-limits на monsters: 10, animals: 5, water-animals: 2, ambient: 0. Так вы сократите спавн мобов.

2. Установите period-in-ticks на 300. Уменьшаем время, за которое будет выгружены неактивные чанки.

3. Установите query-plugins на false, чтобы нельзя было узнать плагины вашего сервера через левые ресурсы.

Spigot.yml:
  1. Уменьшите entity-activation-range. Этот параметр отвечает за отображение сущностей в определенном радиусе. Для максимальной оптимизации поставьте значения как на скриншоте. Мобы за пределами этого диапазона будут отмечаться реже. При желании можно повысить и до 32, но еще выше не рекомендуем.

2. Установите tick-inactive-villagers на false. Дополнительная экономия ресурсов.

Paper.yml:
  1. Установите max-joins-per-tick: 1. Это не позволит заходить игрокам чаще, чем в 1 тик. Полезно, если вы перезапускаете сервер на проде и у вас большой онлайн.

2. Установите значение на 2. Сжатые объекты будут меньше сталкиваться. Это экономия TPS.

3. Установите значение на true. Это предотвратит попадание игроков в неактивный чанк.
Не надейтесь только на количество ОЗУ

Количество ОЗУ (Оперативная память) — Чуть ли не самое главное на тарифе, на котором стоит ваш проект.
Как правило, чтобы сервер выдерживал большие нагрузки, на него нужно выделить как можно больше оперативной памяти.

ClearLagg вам поможет со сборщиком мусора, однако самый идеальный вариант будет 8-16 ГБ оперативной памяти. Этого вполне хватит, чтобы удержать на одном сервере до 200 игроков (если у вас сборка без лишнего). Больше не рекомендуем, если у вас онлайн > 200 игроков, лучше разделить их на несколько режимов, чтобы не убивать один сервер.

CMI или Essentials?

CMI — Самая лучшая альтернатива Essentials, но и в нем есть свои минусы — Оптимизация…
Какой из этих плагинов выбрать? Все зависит от вашего сервера. Нужен ли вам вообще этот CMI? Может одного Essentials'a достаточно?
Если нет, то поговорим об оптимизации плагина CMI.
В этом плагине есть невероятное количество функций, команд, менюшек, эвентов, что существенно нагружают ваш сервер, поэтому давайте выжмем максимум из CMI, чтобы не навредить ни функционалу, ни оптимизации.

  1. Отключим ненужные команды. Для этого мы заходим в CMI > Alias.yml
Например, нам не нужна команда /actionbarmsg, поэтому заменяем везде true на false. Так делаем со всеми ненужными вам командам


2. Отключим ненужные модули. Переходим в CMI > Modules.yml.

Здесь мы можем отключить все, что нам не нужно. Например, мы не используем голограммы и порталы от этого плагина, а они работают и нагружают сервер… Заменяем true на false.


3. Настраиваем конфиг. Переходим в CMI > config.yml. В конфиге, как и в Modules.yml есть очень много всего ненужного. Например, нам не нужно связывать CMI и BungeeCord, значит ставим false, как на скриншоте. Звуки нам тоже особо не нужно, как и партиклы. Выключаем их.


4. Во всех файлах, что подчеркнуты красным отключайте полностью функционал. Он вам не нужен, везде замените true на false.


5. Установите FileAsync на true.

Устраните багоюзеров

Есть такие плагины как:
ExploitFixer - Плагин, фиксящий множество пакет-эксплоитов на вашем сервере.
PL-Hide - поможет скрыть команды плагинов.
AntiRedstoneClock - Плагин, запрещающий создавать лаг-машины.
LPX - Отличный плагин от эксплоитов, крашей, и.т.д.
Не используйте слитые плагины с форумов, пабликов ВК и ТГ каналов

Очевидно, но к сожалению, очень многие этого не понимают.
Не используйте слитые плагины. Какая польза «сливаторам» сливать плагин просто так? Никакая. Поэтому 90% слитых плагинов напичканы хаками, ратками, плохим кодом, и.т.д. Если вы их будете использовать, они мало того что будут нагружать ваш сервер, так еще и подвергнут его взлому.

Не перегружайте сервер плагинами


Много плагинов = Больше нагрузка.
Если вы действительно знаете, зачем вам каждый плагин и какая от него нагрузка, то это не проблема.
Однако для неопытных пользователей рекомендуем не превышать количество плагинов больше 60 и остерегайтесь:
AkyllofItems, AkyloffCheck, AkyloffBoxes, wItems, LattyItems, MoonCases, MoonClans, bDonate, BetterNPC, TrustPotions, TrustDistributions, TrustStacker, UniversalClans. Самые распространённые плагины, в которых не продумана оптимизация и логика.

Итог


Оптимизация — Один из важнейших аспектов в вашей сборке. Если ваша сборка напичкана старыми, слитыми плагинами с форумов на подобие MineLeak, black-minecraft, и.т.д, то даже если вам и удастся привлечь игроков, то сервер ваш существовать будет недолго. Скорее всего его крашнут какие-то школьники, или же придут багоюзеры, которые положат ваш сервер.
© FrameDev 2024. Все права защищены.
Контакты
Made on
Tilda