Dijagnosticiranje zaostajanja poslužitelja Minecrafta i niskog TPS-a

Kako Minecraft radi (što uzrokuje zaostajanje?)

Ključ za razumijevanje uzroka kašnjenja je razumjeti kako Minecraft funkcionira. Svi Minecraft poslužiteljski softveri rade na sličan način s jednim ključnim problemom: nema višestrukih niti vremenskih ograničenja za glavnu petlju igre. Kada poslužitelj prijeđe na tic, prolazi kroz svako ažuriranje TileEntityja, ažuriranje entiteta, ažuriranje bloka, događaje i druge procese dok ne završi. Sve se to događa na jednoj niti, a sljedeća petlja ne može započeti dok ne završi trenutna. Svijet se neće ažurirati, igrači se neće pomicati i entiteti će biti zamrznuti na mjestu. U idealnom slučaju, svaki tik ne bi trebao trajati više od 50 ms za održavanje 20 tikova u sekundi (TPS). To može ići čak 55,55 ms za 18 TPS uz minimalne probleme. Sve niže od ovoga i počet ćete vidjeti zaostajanje.

Tipični uzroci zaostajanja

Mnogo je stvari koje mogu uzrokovati kašnjenje, ali neke od njih će biti najvjerojatniji krivci za većinu poslužitelja.

  • Korištenje datoteke : bilo koji dodatak koji neprestano čita iz datoteka igrača, posebno o događajima kao što su kretanje, oštećenje ili interakcija. Nekoliko primjera bi bile neke PVP zastavice ili Glow dodaci koji će kontinuirano čitati iz datoteka igrača.
  • Ravne datoteke kao baza podataka : kada imate dodatke koji koriste velike datoteke za praćenje velikog broja podataka koji se ponavljaju kroz tu datoteku ili u memoriju, ovisno o tome kako je pohranjena, trajat će mnogo vremena. Mnogi dodaci to rade i ne poduzimaju mjere opreza protiv toga kako će, kada baze podataka postanu napuhane, vrijeme obrade utjecati na tik poslužitelja. To ćete često vidjeti kada učitavate velike konfiguracije MagicSpellsa ili koristite sustave dozvola koji koriste YAML umjesto ispravne baze podataka kao što su PEX i GroupManager.
  • Previše operacija : Kada dodatak stvori previše entiteta ili pokuša izvesti složene zadatke na događajima kao što je kretanje, počet ćete vidjeti kašnjenje. Čak i ako svako pokretanje traje manje od 1 ms, kada obrađujete događaj 20 tisuća puta u sekundi, on postaje eksponencijalan. Dodaci koji to mogu uzrokovati su dodaci za uređivanje svijeta kao što su VoxelSniper i WorldEdit; ili zaštitni dodaci kao što su Anti Cheats i World Protections.
  • Učitano je previše komada : jedan komad je 16*16*256. Ovo možda ne zvuči puno, ali kada se pomnoži to znači da ima 65.536 blokova po komadu. Svaki igrač može imati više od 200 komada učitanih oko sebe, ovisno o vašoj konfiguraciji. To je više od 13.107.200 blokova. Ovo zauzima puno memorije. Također, ako je čak 1% od njih TileEntities, to je 131.072 TileEntities učitanih koji moraju ažurirati svaki tic. Modovi su poznati po sporom vremenu obrade na TileEntities.
  • Cascading WorldGen : Ovo je kada dodatak ili mod generira strukture izvan dijela koji mu je zadan. To uzrokuje da se sljedeći dio učitava, generira i zatim ponovno pokreće ako se i struktura počnu prelijevati u sljedeći dio. Ovo je loš dizajn u ime kreatora i svaki dodatak ili mod koji to radi treba odmah ukloniti.
  • Subjekti pločica : pogledajte odjeljak LagGoggle ispod.

Pronalaženje uzroka zaostajanja danas je općenito jednostavan postupak jer je većina Minecraft poslužiteljskog softvera izgrađena s uključenim alatima za profiliranje.

Izvješća o vremenu za Spigot/PaperSpigot

Da biste dobili detaljno izvješće o vremenu, možete koristiti naredbu follow.

/timings on

Poželjet ćete pričekati nekoliko minuta i pustiti da se odugovlači dok vam vremena teče. Nakon nekog vremena generirajte izvješće.

/timings paste

To će vam dati poveznicu na web-mjesto s lijepom raščlambom izvješća s jednostavnim opcijama za probiranje svih podataka koje dobivate. Možete saznati više o tome kako ih čitati na Spigotovom wikiju o mjerenju vremena .

Nakon toga ćete htjeti isključiti mjerenje vremena jer ne želite da neželjeni podaci začepe vaše sljedeće čitanje, a mjerenje vremena dodaje dodatno vrijeme tiku.

/timings off

Izvješća o vremenu za Spužva

Da biste dobili detaljno izvješće o vremenu, možete koristiti naredbu follow.

/sponge timings on

Poželjet ćete pričekati nekoliko minuta i pustiti da se odugovlači dok vam vremena teče. Nakon nekog vremena generirajte izvješće.

/sponge timings report

To će vam dati poveznicu na web-mjesto s lijepom raščlambom izvješća s jednostavnim opcijama za probiranje svih podataka koje dobivate. Budući da se Spongeov sustav mjerenja vremena temelji na Spigotovom, možete saznati više o tome kako ih čitati na Spigotovom wikiju o mjerenju vremena .

Nakon toga ćete htjeti isključiti mjerenje vremena jer ne želite da neželjeni podaci začepe vaše sljedeće čitanje, a mjerenje vremena dodaje dodatno vrijeme tiku.

/sponge timings off

Također možete resetirati vremena.

/sponge timings reset

Koraci za smanjenje kašnjenja

  • Koristite odgovarajuće argumente za svoju datoteku skripte za pokretanje Minecrafta. Saznajte više o odgovarajućim Java argumentima ovdje
  • Koristite LuckPerms ili upravitelj dozvola koji koristi odgovarajuću bazu podataka umjesto ravne datoteke
  • Izbjegavajte utovarivače komada u potpunosti
  • Uklonite sve što uzrokuje kaskadno stvaranje svijeta
  • Ograničite Anti Cheat dodatke da ne budete pretjerano revni
  • Ograničite udaljenost gledanja igrača server.properties
  • Očistite neprijateljske mafije nakon određenog vremenskog razdoblja
  • Ponovo pokrenite poslužitelj svaki dan kako biste očistili curenje iz Jave
  • NIKADA nemojte ponovno učitavati poslužitelj, to uzrokuje curenje i druge probleme
  • Koristite FastAsync verzije dodataka kao što su WorldEdit i VoxelSniper
  • Ograničite veličinu svog svijeta kako se novi dijelovi ne bi stalno stvarali
  • Ograničite količinu dodataka koje koristite. Nisu svi dodaci dobro izgrađeni i što više imate, naići ćete na više problema

LagGoggles

Veliki dio kašnjenja na modificiranim poslužiteljima dolazi od pločica entiteta. To su entiteti stvoreni za blokove koji se koriste za obradu funkcionalnosti i događaja bloka. Ako traju predugo ili ih ima previše, to može povećati vrijeme po tiku i smanjiti ukupni TPS poslužitelja. Način za vizualizaciju ovih problema je korištenje moda pod nazivom LagGoggles. Ovaj mod možete preuzeti s CurseForce .


Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više