Диагностициране на забавяне на сървъра на Minecraft и нисък TPS

Как работи Minecraft (Какво причинява забавяне?)

Ключът към разбирането на това какво причинява забавяне е да разберете как работи Minecraft. Сървърният софтуер на Minecraft работи по подобен въпрос с един ключов проблем: няма многонишкови или времеви ограничения за основния цикъл на играта. Когато сървърът премине към tic, той преминава през всяка актуализация на TileEntity, актуализация на обект, актуализация на блокове, събития и други процеси, докато приключи. Всичко това се случва в една нишка и следващият цикъл не може да започне, докато текущият не приключи. Светът няма да се актуализира, играчите няма да изглежда да се движат и обектите ще бъдат замразени на място. В идеалния случай всеки тик трябва да отнема не повече от 50 ms, за да поддържа 20 тика в секунда (TPS). Това може да стигне до 55,55 ms за 18 TPS с минимални проблеми. По-ниско от това и ще започнете да виждате изоставане.

Типични причини за изоставане

Има много неща, които могат да причинят забавяне, но някои от тях ще бъдат най-вероятният виновник за повечето сървъри.

  • Използване на файлове : Всеки плъгин, който постоянно чете от файлове на плейъра, особено при събития като движение, повреда или взаимодействие. Няколко примера биха били някои PVP флагове или Glow плъгини, които непрекъснато ще четат от файловете на плейъра.
  • Плоски файлове като база данни : Когато имате плъгини, които използват големи файлове, за да следят много данни, итерацията през този файл или в паметта в зависимост от това как се съхранява, ще отнеме много време. Много плъгини правят това и не вземат предпазни мерки срещу това как, когато базите данни се раздуят, времето за обработка ще се отрази на тик на сървърите. Ще видите това много, когато зареждате големи конфигурации на MagicSpells или използвате системи за разрешения, които използват YAML вместо подходяща база данни като PEX и GroupManager.
  • Твърде много операции : Когато плъгин породи твърде много обекти или се опитва да изпълнява сложни задачи за събития като движение, ще започнете да виждате забавяне. Дори ако всяко изпълнение отнема по-малко от 1 мс, когато обработвате събитие 20 000 пъти в секунда, то става експоненциално. Плъгините, които могат да причинят това, са плъгини за редактиране на света като VoxelSniper и WorldEdit; или защитни плъгини като Anti Cheats и World Protections.
  • Заредени са твърде много парчета : Една част е 16*16*256. Това може да не звучи много, но когато се умножи, това означава, че има 65 536 блока на парче. Всеки играч може да има повече от 200 заредени парчета около себе си, в зависимост от вашата конфигурация. Това е повече от 13 107 200 блока. Това отнема много памет. Освен това, ако дори 1% от тях са TileEntities, това е 131 072 заредени TileEntities, които трябва да актуализират всеки тик. Модовете са известни с това, че имат бавно време за обработка на TileEntities.
  • Cascading WorldGen : Това е, когато плъгин или мод генерира структури извън частта, която му е дадена. Това кара следващата част да се зареди, генерира и след това задейства отново, ако също така започне да прелива структури в следващата част. Това е лош дизайн от името на създателите и всеки плъгин или мод, който прави това, трябва да бъде премахнат незабавно.
  • Обекти на плочки : Вижте раздела LagGoggle по-долу.

Намирането на причината за изоставането обикновено е проста процедура в днешно време, тъй като повечето сървърен софтуер на Minecraft е изграден с включени инструменти за профилиране.

Доклади за времето за Spigot/PaperSpigot

За да получите подробен отчет за времето, можете да използвате следната команда.

/timings on

Ще искате да изчакате няколко минути и да го оставите да се забави, докато времето ви тече. След известно време генерирайте отчета.

/timings paste

Това ще ви даде връзка към уебсайт с хубава разбивка на отчета с лесни опции за пресяване на всички данни, които получавате. Можете да научите повече за това как да ги четете в уикито за времето на Spigot .

Ще искате да изключите таймингата след това, тъй като не искате нежеланите данни да запушват следващото ви четене, а таймингата добавя допълнително време към тика.

/timings off

Доклади за времето за Sponge

За да получите подробен отчет за времето, можете да използвате следната команда.

/sponge timings on

Ще искате да изчакате няколко минути и да го оставите да се забави, докато времето ви тече. След известно време генерирайте отчета.

/sponge timings report

Това ще ви даде връзка към уебсайт с хубава разбивка на отчета с лесни опции за пресяване на всички данни, които получавате. Тъй като системата за синхронизиране на Sponge е базирана на тази на Spigot, можете да научите повече за това как да ги четете в уикито на Spigot .

Ще искате да изключите таймингата след това, тъй като не искате нежеланите данни да запушват следващото ви четене, а таймингата добавя допълнително време към тика.

/sponge timings off

Можете също да нулирате тайминга.

/sponge timings reset

Стъпки за намаляване на изоставането

  • Използвайте подходящи аргументи за вашия скриптов файл, за да стартирате Minecraft. Научете повече за подходящите аргументи на Java тук
  • Използвайте LuckPerms или мениджър на разрешения, който използва правилна база данни вместо плосък файл
  • Избягвайте напълно зареждането на парчета
  • Премахнете всичко, което причинява каскадно генериране на света
  • Ограничете плъгините Anti Cheat, за да не бъдете прекалено ревностни
  • Ограничете разстоянието за гледане на играчите server.properties
  • Изчистете враждебните тълпи след определен период от време
  • Рестартирайте сървъра всеки ден, за да почистите течове от Java
  • НИКОГА не презареждайте сървъра, това причинява течове и други проблеми
  • Използвайте FastAsync версии на плъгини като WorldEdit и VoxelSniper
  • Ограничете размера на вашия свят, така че да не се създават постоянно нови парчета
  • Ограничете количеството плъгини, които използвате. Не всички плъгини са изградени добре и колкото повече имате, толкова повече проблеми ще срещнете

LagGoggles

Голяма част от забавянето на модифицираните сървъри идва от плочки. Това са обектите, създадени за блокове, които се използват за обработка на функционалността и събитията на блока. Ако те отнемат твърде много време или са твърде много, това може да увеличи времето на тик и да намали общия TPS на сървъра. Начин за визуализиране на тези проблеми е да използвате мод, наречен LagGoggles. Можете да изтеглите този мод от CurseForce .

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече