Ця стаття також доступна на:
У цій статті ми дізнаємося, як оптимізувати свій сервер Minecraft на повну котушку. Будь ласка, зверніть увагу, що це не магія набір інструкцій, які видалять всі лаги вашого сервера, але вони допоможуть.

Ця стаття дещо відрізняється від наших інших, оскільки вона буде дуже часто оновлюватися, щоб зробити її кращою.

Програмне забезпечення, яке відноситься до:
Папір і будь-яка з його вилок

Програмне забезпечення, на яке це не поширюється:
Pocketmine
Nukkit
Vanilla Bedrock
Vanilla Java
Spigot or below forks
Others

* Якщо ви використовуєте SPIGOT або будь-які нижче вилки, ви дійсно не повинні бути і повинні використовувати більш оптимізовану вилку, як Paper or Purpur (ми рекомендуємо purpur).
Ключові терміни:
TPS є тиків в секунду. Є 20 Minecraft кліліків в одну секунду, тому, якщо ваш сервер не відстає, вона повинна бути на рівні 20TPS.
MSPT це скільки часу займає кожен клік. Чим менше це число, тим краще.
Ping (ms). 99.9% часом це не пов’язано з продуктивністю ваших серверів, а скоріше із затримкою розташування між вашим клієнтом і сервером.

Починаємо:

Перший розділ вимагатиме редагування файлів конфігурації вашого сервера, які знаходяться в кореневій папці вашого сервера.
Щоб отримати доступ до цих файлів, якщо ви не знаєте, як це зробити, дотримуйтесь цього міні-посібника:

Як дістатися до і редагування конфігураційних файлів:

Перейдіть на панель, на witherpanel.com
Виберіть сервер зі списку.
Перейдіть в Диспетчер файлів на стороні панелі.


Тут ви можете побачити список файлів сервера, який містить потрібні нам файли конфігурації.

Ми будемо намагатися і редагувати конфігураційний файл з ім'ям paper.yml і ми збираємося встановити use-faster-eigencraft-redstone на true.

Натисніть на paper.yml файл на файловий менеджер, це відкриє файл у веб-браузері.


На клавіатурі скористайтеся комбінацією клавіш Ctrl + F, щоб відкрити вікно пошуку.


Ви можете знайти налаштування за допомогою цього, а потім клацнути enter.


Тоді ми змінюємось use-faster-eigencraft-redstone: false до use-faster-eigencraft-redstone: true.
Збережіть файл за допомогою кнопки «Зберегти».

Тепер ви відредагували налаштування у файлі конфігурації, щоб застосувати ці налаштування, перезапустіть сервер.

Налаштування

Є список налаштувань, які рекомендують бути змінені, щоб принести Вам самий оптимізований сервер.
Ми могли б пройти і список їх все тут, але є абсолютно хороший список, що люди зробили за ці роки, що ми рекомендуємо вам змінити налаштування, щоб відповідати.

Керівництво, яке поєднує в собі безліч інших більш дрібних гідів тут: https://github.com/YouHaveTrouble/minecraft-optimization and here https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/

Ми рекомендуємо вам переглянути їх обидва та застосувати зміни з них до свого сервера.

Якщо ваш сервер вимагає, щоб працювати якомога ближче до ванільним поведінки, як це можливо (в той час як за допомогою Spigot вилки), деякі з параметрів, які змінюють основні особливість гри, як поведінка контейнера і чернь нересту, ви не можете змінити. Це, так би мовити, його сервер, так що ви робите те, що ви хочете зробити!

Пошук причин відставання:

Ви слідували за ці 2 напрямні, змінюючи безліч налаштувань на сервері, але він як і раніше має низький TPS ...
Ми покажемо вам, як налагоджувати, що викликає затримку на сервері.

Це для Paper і вище, оскільки Spigot не має цієї оновленої функціональності (Spigot має тільки Timings v1, тоді як Paper/forks мають Timings v2, що нам і потрібно).

Кроки:

На сервері, виконайте команду timings on.
Залиште ваш сервер працює протягом приблизно 30 хвилин, так як дані тайминги збирає для звіту.
Після 30 хвилин, виконайте команду timings paste, і перейдіть за посиланням, що робить в консолі.
Це місце, де починається веселощі, дивлячись через тайминги, щоб побачити, що є причиною затримки.

Покрокове керівництво:
Для того, щоб почати легше, ми збираємося глянути на вкладку PLUGINS, щоб побачити, якщо будь-який з ваших плагінів викликає затримку.
Це звіт приклад тайминги, в закладці сказав:



Ви можете бачити на картинці, що плагін «InventoryRollback» приймає вгору більше, ніж середня кількість кліків.
При натисканні на InventoryRollback::Combined Total, відобразить детальніший список подій, які обробляє плагін, що спричиняє затримку:



Перші кроки, які ми рекомендуємо вам взяти, це поглянути, щоб побачити, якщо є оновлена версія плагіна ви використовуєте, який має більше оптимізацій в місці, щоб скоротити відставання (наприклад, оновлення, спроби запуску плагінів події асинхронний, а потім в головному потоці сервера CPU).

Наприклад, плагін "InventoryRollback" має новішу версію під назвою "InventoryRollbackPlus", який є оновленою, поліпшеної і менш лагає версія плагіна. Побачити можна тут.

Якщо таке оновлення не існує, або не існує один, який покращує стан тайминги вашого сервера звіт, потім дивиться на те, що звіт тайминги говорить ваш плагін робить, щоб викликати відставання буде наступний крок, який ми рекомендуємо вам.

Приклад:
Ми бачимо, що InventoryRollback має деякі події, які відстають від сервера більше, ніж інші, наприклад, InventoryRollback::Event: m.d.i.l.EventLogs (PlayerQuitEvent) (див. скріншот).
У конфігурації InventoryRollback ми бачимо, що в конфігурації є параметри, які контролюють, коли він робить резервну копію інвентарю гравців.



Зокрема, зверніть увагу quit, який є найбільш лаг події при читанні з наших таймингов. Ми можемо відключити цю подію, встановивши значення "0".

Що це за мету зробити, це зменшити вплив, що конкретний плагін має на кліщі вашого сервера.
Після такого роду методу з іншими плагінами, що питання викликають на ваших таймингов, допоможе зменшити навантаження на сервер.

Тепер перейдіть на вкладку TIMINGS.

Дивлячись на цій вкладці може здатися складною на перший, але вона може бути розбита досить легко.



Звіт про час містить номери "лаги" колір (червоний самої гіршим, біле істота мало впливає), проте, різні секції немає, тому у мене є кольорові основна частина тайминги, що ми будемо дивитися.
кольори:
Аква = Сутності
Pink = Світ
Жовтий = Плагіни

Починаючи зверху, ми бачимо, що Full Server Tick зазнає найбільшого впливу Minecraft::world -doTick, і розширюється doTick, ми бачимо tickEntities будучи найбільшим відставанням.



Розгортання кількох наступних значень підводить нас до цього:



У цьому ми бачимо `mooshroom`s займають багато кліків. Це означає, що, швидше за все, багато грибів на вашому сервері.
Це може відбуватися з кількох причин, таким як:
Гравці, що використовують їх для ферм.
Налаштування генерації вашого сервера є високими і дозволяючи багато розмножуватись.
Безліч шматків, які містять натовп завантажені.

Щоб зменшити вплив цих перерахованих речей, ви можете зробити такі речі, як:
Вводячи кик за АФК, так що гравці не можуть тримати шматки завантажені протягом тривалого періоду часу.
Зміна мобу нерест настройки bukkit.yml зменшити кількість спавну. Можливо, ви захочете ввімкнути per-player-mob-spawns в paper.yml, яка прагне змінити розподіл мобів між гравцями на сервері справедливіше (це може привести до більш мобів час породив, в залежності від того, як ваш сервер налаштований).
Зменшення рендер відстані для шматків, дозволяючи no-tick-distance налаштування в paper.yml.

У моєму прикладі тайминги, майже всі відставання виходить з натовпу нерест на шматки. Зменшення візуалізації відстані під час установки no-tick-distance в paper.yml допоможе вирішити проблему нересту мобів на великій території, тому що відстань без галочки схожа на відстань візуалізації (відстань перегляду), але шматки не відзначаються, тому моби не з’являтимуться в них. У хронометражі я бачу багато мобів у частинах і створюють завдання, які спричиняють більшість проблем із затримкою. Зменшення кількості нересту та шапки мобів допоможе вирішити цю проблему.

Перехід за звітом таймингов, як це допоможе вам визначити, де відставання TPS і MSPT виходить від і необхідно для вашого сервера, щоб працювати безперебійно.

Намагайтеся не використовувати поверх кількості полігонів, так як вони можуть використовувати багато ресурсів, особливо якщо кодований погано, і бути розумним з настройками сервера.

Щоб отримати допомогу з подальшою оптимізацією сервера, не соромтеся пінгувати MrRazamataz#6614 #community-help в WitherHosting Discord server.

Останнє оновлення: 13/09/2021 @ 21:19 GMT + 1
Чи була ця стаття корисною?
Скасувати
Дякуємо!