Як прибрати лаги на сервері Minecraft
На цій сторінці
«Сервер лагає» може означати три різні проблеми, і кожна має своє рішення. Відкидання назад і блоки, що з'являються знову після того, як їх зламали, — це сервер не встигає. Пінг, що стрибає, — це мережа. Смикана картинка в одного гравця, коли в інших усе нормально, — це його власний ПК.
У цьому гайді розберемо, як їх розрізнити, як правильно виміряти лаги сервера за допомогою TPS, MSPT і профілю spark, які налаштування на Paper справді допомагають і як зрозуміти, коли відповідь справді в більшому обсязі RAM чи швидшому CPU, а коли ні.
Лаги сервера, мережі чи клієнта?
| Що бачать гравці | Як перевірити | |
|---|---|---|
| Лаги сервера | У всіх одразу: відкидає назад, моби завмирають, блоки повертаються, чат запізнюється | TPS нижче 20 або тривалість тіку 50 мс і більше |
| Лаги мережі | В одного чи кількох гравців: телепортує назад, удари не проходять | Високий пінг у цих гравців, а TPS тримається на 20 |
| Лаги клієнта | В одного гравця: низький FPS, ривки під час повороту | Низький FPS на екрані F3 у цього гравця, показники сервера в нормі |
Найшвидша перевірка — запитати, чи лагає у всіх в один і той самий момент. Сервер, що відстає, заморожує всіх гравців одночасно; погане з'єднання чи слабкий ПК заважають лише своєму власникові. Далі в гайді йдеться про лаги сервера.
Лаги через слабке залізо? Сервери Minecraft від HytHost працюють на високочастотних Ryzen 7 та Intel i9 — від €2.59/міс.
Тарифи MinecraftСпочатку виміряйте: TPS, MSPT і spark
Сервер Minecraft виконує 20 тіків на секунду, тож на кожен тік є 50 мс. Як він справляється, показують два числа:
- TPS (тіків на секунду): 20 — сервер встигає; нижче 20 — світ сповільнюється.
- MSPT (мілісекунд на тік): скільки триває кожен тік. Менше 50 мс — є запас; більше 50 мс — сервер відстає.
У Paper є /tps і /mspt, але його власна документація радить spark — він вбудований у Paper починаючи з 1.21 і доступний як мод для Fabric, Forge і NeoForge:
/spark tps /spark health /spark ping
/spark tps показує TPS за останні секунди й хвилини і, що корисніше, тривалість тіків: мінімум, медіану, 95-й перцентиль і максимум. /spark ping показує пінг гравців і закриває питання «сервер чи мережа». /spark health додає CPU, пам'ять і диск.
Знайдіть причину за допомогою профілю spark
Числа кажуть, що сервер лагає; профіль каже, чому. Запустіть його, поки лаги тривають, і дайте попрацювати кілька хвилин:
/spark profiler start --timeout 300
Після завершення spark видасть посилання на свій веб-переглядач. У ньому:
- Відкрийте Server thread — головний потік, у якому працює світ. Лаги живуть саме там.
- Розгорніть записи з найбільшими відсотками: туди йде час тіку.
- Перемкніться на вигляд Sources, щоб побачити час за плагінами чи модами. Один плагін або мод, що займає велику частку головного потоку, зазвичай і є відповіддю.
Ще два інструменти допомагають із лагами, які то з'являються, то зникають: /spark tickmonitor повідомляє про кожен затяжний тік, а /spark profiler start --only-ticks-over 100 записує лише повільні тіки, щоб рідкісний стрибок не розчинився в середньому.
Рішення, які мають значення, по порядку
1. Дальність огляду й симуляції
У server.properties параметр simulation-distance задає, як далеко від гравців світ справді симулюється — моби, посіви, редстоун, — а view-distance — як далеко гравцям надсилаються чанки. За замовчуванням обидва дорівнюють 10. Зменшення simulation-distance часто дає найбільший виграш: спробуйте 6–8 і залиште view-distance трохи вищим, щоб світ і далі виглядав відкритим. Це відправні точки, а не офіційні значення; вимірюйте до і після.
2. Попередня генерація світу
Генерація нових чанків — одна з найдорожчих операцій сервера, а гравці, що досліджують світ у різних напрямках, змушують його робити це постійно. Плагін (або мод) Chunky генерує мапу заздалегідь:
chunky radius 5000 chunky start chunky pause chunky continue
Запускайте його, коли ніхто не грає — під час попередньої генерації сервер за задумом пише «Can't keep up», — і ставте на паузу, коли заходять гравці.
3. Сутності та ферми
Ферми мобів, зали з селянами й купи предметів — найчастіше постійне навантаження. На Paper і Spigot параметр entity-activation-range у spigot.yml визначає, наскільки близько має бути гравець, щоб сутність тікала повністю, а merge-radius об'єднує випалі предмети й сфери досвіду. Обмежте ферми мобів плагіном або правилом і прибирайте забуті купи предметів.
4. Лійки та редстоун
Довгі ланцюжки лійок обходяться дорого. У spigot.yml параметр ticks-per.hopper-transfer задає, як часто вони переміщують предмети, а hopper.disable-move-event у Paper сильно їх прискорює — але ламає захисні плагіни, що покладаються на цю подію. Для редстоуну misc.redstone-implementation: ALTERNATE_CURRENT у Paper може значно зменшити лаги від редстоун-пилу, але змінює його поведінку, тож спершу перевірте свої механізми.
5. Плагін або мод із профілю
Якщо профіль spark вказує на один плагін чи мод, рішення в ньому: оновіть його, урізайте його налаштування або замініть. Жоден обсяг RAM не пришвидшить погано написаний плагін.
«TPS 20, а все одно лагає»
Це найзаплутаніший випадок, і майже завжди це зависання тіку: більшість тіків швидкі, але час від часу один триває сотні мілісекунд. Середнє лишається на 20, а фриз відчувають усі.
- Перевірте максимальну тривалість тіку в
/spark tpsабо запустіть/spark tickmonitor. Стрибки в кілька сотень мілісекунд це підтверджують. - Звичайна причина — плагін, який чекає в головному потоці: завантажує скіни чи голови гравців з інтернету, надсилає дані на вебхук, перевіряє оновлення чи ліцензію, синхронно зберігає файл або базу даних. Поки він чекає, сервер нічого не робить.
- Профілюйте очікування, а не лише обчислення. Звичайний профіль показує роботу CPU; потік, що чекає, виглядає бездіяльним. Використовуйте
/spark profiler start --thread *, щоб побачити, куди йде час з урахуванням очікувань, і шукайте мережеві чи файлові виклики в Server thread.
Виправляти треба плагін — асинхронні виклики або інший плагін. Більше RAM, швидший CPU чи краще з'єднання не допоможуть: серверу всього вистачає, він просто чекає.
Коли справа справді в RAM чи CPU
Minecraft симулює світ в одному головному потоці. З цього випливають дві речі:
- Найважливіша швидкість CPU на одне ядро. Якщо spark показує, що Server thread зайнятий звичайною роботою світу — сутності, чанки, тіки блоків, — а MSPT високий, допоможе швидший CPU, тоді як більше ядер не допомогло б.
- RAM допомагає, лише коли її бракує. Ознаки: сервер перезапускається, впираючись у ліміт пам'яті, або паузи збирання сміття домінують у профілі. Понад те, що потрібно світу й модам, додаткова RAM ніяк не пришвидшує тіки, а завеликий неналаштований heap може подовжити паузи збирання сміття.
Скільки RAM потрібно серверу і які прапорці запуску скорочують збирання сміття, розібрано в гайді скільки RAM потрібно серверу Minecraft. Вибір між Paper, Purpur та іншими — у гайді найкраще серверне ПЗ для Minecraft.
Лаги і ваш сервер на HytHost
Усі тарифи Minecraft на HytHost працюють на однаковому залізі: процесори Ryzen 7 та Intel i9 з бустом до 5.0 GHz, пам'ять DDR4 і накопичувачі NVMe — та сама однопотокова продуктивність, від якої залежить Minecraft. spark уже входить до Paper, тож профілювати можна з консолі одразу.
Якщо профіль показує, що серверу справді бракує пам'яті для його світу й модів, перейдіть на вищий тариф просто з панелі — світ залишиться на місці. Якщо він вказує на плагін чи ферму, спершу виправте це — це безкоштовно й працює на будь-якому тарифі. Дивіться хостинг Minecraft або більші тарифи на сторінці преміум-хостингу Minecraft від €11.65/міс.
Більше місця для модпаків і великих світів: MC Diamond з 9 GB коштує €11.65/міс, а під час апгрейду світ зберігається.
Тарифи MinecraftПоширені запитання
20 TPS — це цільове значення гри. Воно тримається, поки кожен тік займає менше 50 мс (MSPT нижче 50). Стежте також за 95-м перцентилем і максимальною тривалістю тіків у /spark tps, бо середнє 20 може приховувати короткі фризи.
Лише якщо серверу справді бракує пам'яті: наприклад, він перезапускається на ліміті пам'яті або збирання сміття домінує в профілі. Більшість лагів іде з головного потоку — сутності, генерація чанків, редстоун або повільний плагін, — і додаткова RAM цього не пришвидшує.
Purpur побудований на Paper і додає багато додаткових налаштувань та ігрових функцій; офіційно він не заявляє, що швидший. Для лагів налаштування й плагіни на вашому сервері важать набагато більше, ніж вибір між ними.
За замовчуванням view-distance і simulation-distance дорівнюють 10. Зменшення simulation-distance приблизно до 6–8 зазвичай допомагає найбільше, бо скорочує область, яку симулює сервер. Залиште view-distance трохи вищим, щоб світ виглядав відкритим, і вимірюйте до і після.
Запустіть /spark profiler start --timeout 300, поки сервер лагає. Потім spark видасть посилання на переглядач: відкрийте Server thread, розгорніть записи з найбільшими відсотками й у вигляді Sources подивіться, який плагін чи мод забирає час.
Швидке залізо для плавного світу
Усі тарифи хостингу Minecraft від HytHost працюють на високочастотних Ryzen 7 та Intel i9 з NVMe, а під час апгрейду світ зберігається — від €2.59/міс.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursЦей гайд був корисним?