Si funksionon Minecraft (Çfarë e shkakton vonesën?)
Shkaqet tipike të vonesës
Raportet e kohës për Spigot/PaperSpigot
Raportet e kohës për sfungjer
Hapat për të reduktuar vonesën
Si funksionon Minecraft (Çfarë e shkakton vonesën?)
Çelësi për të kuptuar se çfarë po shkakton vonesë është të kuptoni se si funksionon Minecraft. Softueri i serverit Minecraft funksionon të gjithë në një çështje të ngjashme me një problem kryesor: nuk ka kufizime të shumëfishta ose kohore për ciklin kryesor të lojës. Kur serveri shkon në tic, ai kalon përmes çdo përditësimi të TileEntity, përditësimit të entitetit, përditësimit të bllokut, ngjarjeve dhe proceseve të tjera derisa të përfundojë. E gjithë kjo ndodh në një thread dhe cikli tjetër nuk mund të fillojë derisa të përfundojë ai aktual. Bota nuk do të përditësohet, lojtarët nuk do të duken të lëvizin dhe subjektet do të ngrihen në vend. Idealisht, çdo tik duhet të marrë jo më shumë se 50 ms për të mbajtur 20 tik për sekondë (TPS). Kjo mund të shkojë deri në 55,55 ms për 18 TPS me probleme minimale. Çdo më e ulët se kjo dhe do të filloni të shihni vonesë.
Shkaqet tipike të vonesës
Ka shumë gjëra që mund të shkaktojnë vonesë, por disa prej tyre do të jenë fajtori më i mundshëm për shumicën e serverëve.
- Përdorimi i skedarit : Çdo shtesë që lexon vazhdimisht nga skedarët e luajtësit, veçanërisht në ngjarje të tilla si lëvizje, dëmtim ose ndërveprim. Disa shembuj do të ishin disa flamuj PVP ose shtojca Glow të cilat do të lexojnë vazhdimisht nga skedarët e luajtësit.
- Skedarët e sheshtë si bazë të dhënash : Kur keni shtojca që përdorin skedarë të mëdhenj për të mbajtur gjurmët e shumë të dhënave që përsëriten përmes atij skedari ose në kujtesë, në varësi të mënyrës se si ruhet, do të duhet shumë kohë. Shumë shtojca e bëjnë këtë dhe nuk marrin masa paraprake kundër mënyrës sesi, kur bazat e të dhënave fryhen, koha e përpunimit do të ndikojë në tickun e serverëve. Këtë do ta shihni shumë kur ngarkoni konfigurime të mëdha MagicSpells, ose përdorni sisteme të lejeve që përdorin YAML në vend të një baze të dhënash të duhur si PEX dhe GroupManager.
- Shumë operacione : Kur një shtojcë krijon shumë entitete ose përpiqet të kryejë detyra komplekse në ngjarje të tilla si lëvizjet, do të filloni të shihni vonesë. Edhe nëse çdo ekzekutim zgjat më pak se 1 ms, kur përpunoni një ngjarje 20 mijë herë në sekondë, ajo bëhet eksponenciale. Shtojcat që mund ta shkaktojnë këtë janë shtojcat e redaktimit botëror si VoxelSniper dhe WorldEdit; ose shtojca mbrojtëse si Anti Cheats dhe World Protections.
- Shumë pjesë të ngarkuara : Një pjesë është
16*16*256. Kjo mund të mos tingëllojë si shumë, por kur shumëzohet kjo do të thotë se ka 65,536 blloqe për copë. Çdo lojtar mund të ketë më shumë se 200 copa të ngarkuara rreth tyre, në varësi të konfigurimit tuaj. Kjo është mbi 13,107,200 blloqe. Kjo merr shumë memorie. Gjithashtu, nëse edhe 1% e tyre janë TileEntities, janë 131,072 TileEntities të ngarkuara që duhet të përditësojnë çdo tik. Mod-et janë të njohur për kohën e ngadaltë të përpunimit në TileEntities.
- Cascading WorldGen : Kjo është kur një plugin ose mod gjeneron struktura jashtë pjesës që i është dhënë. Kjo bën që pjesa tjetër të ngarkohet, të gjenerojë dhe më pas ta aktivizojë këtë përsëri, nëse gjithashtu fillon të ketë struktura të tejmbushura në pjesën tjetër. Ky është dizajn i keq në emër të krijuesve dhe çdo shtojcë ose mod që e bën këtë duhet të hiqet menjëherë.
- Subjektet e pllakave : Shih seksionin LagGoggles më poshtë.
Gjetja e shkakut të vonesës është përgjithësisht një procedurë e thjeshtë në ditët e sotme pasi shumica e softuerëve të serverëve Minecraft janë ndërtuar me mjete profilizimi të përfshira.
Raportet e kohës për Spigot/PaperSpigot
Për të marrë një raport të detajuar të kohës, mund të përdorni komandën follow.
/timings on
Ju do të dëshironi të prisni disa minuta dhe ta lini të vonojë ndërkohë që oraret tuaja janë duke u ekzekutuar. Pas një kohe, krijoni raportin.
/timings paste
Kjo do t'ju japë një lidhje me një faqe interneti me një përmbledhje të këndshme të raportit me opsione të thjeshta për të shoshitur të gjitha të dhënat që po merrni. Mund të mësoni më shumë se si t'i lexoni këto në wiki kohore të Spigot .
Ju do të dëshironi të çaktivizoni oraret më pas, pasi nuk dëshironi që të dhënat e padëshiruara të bllokojnë leximin tuaj të ardhshëm dhe oraret i shtojnë kohë shtesë tik-it.
/timings off
Raportet e kohës për sfungjer
Për të marrë një raport të detajuar të kohës, mund të përdorni komandën follow.
/sponge timings on
Ju do të dëshironi të prisni disa minuta dhe ta lini të vonojë ndërkohë që oraret tuaja janë duke u ekzekutuar. Pas një kohe, krijoni raportin.
/sponge timings report
Kjo do t'ju japë një lidhje me një faqe interneti me një përmbledhje të këndshme të raportit me opsione të thjeshta për të shoshitur të gjitha të dhënat që po merrni. Meqenëse sistemi i matjeve të Sponge-s bazohet në atë të Spigot-it, mund të mësoni më shumë se si t'i lexoni këto në wiki -n e kohës së Spigot-it .
Ju do të dëshironi të çaktivizoni oraret më pas, pasi nuk dëshironi që të dhënat e padëshiruara të bllokojnë leximin tuaj të ardhshëm dhe oraret i shtojnë kohë shtesë tik-it.
/sponge timings off
Ju gjithashtu mund të rivendosni oraret.
/sponge timings reset
Hapat për të reduktuar vonesën
- Përdorni argumentet e duhura për skedarin tuaj të skriptit për të nisur Minecraft. Mësoni më shumë rreth argumenteve të duhura Java këtu
- Përdorni LuckPerms ose një menaxher të lejeve që përdor një bazë të dhënash të duhur në vend të një skedari të sheshtë
- Shmangni plotësisht ngarkuesit e copëzave
- Hiqni çdo gjë që shkakton gjenerimin e kaskadës botërore
- Kufizoni shtojcat Anti Cheat për të mos qenë tepër të zellshëm
- Kufizoni distancën e shikimit të lojtarëve brenda
server.properties
- Pastroni turmat armiqësore pas një periudhe të caktuar kohore
- Rinisni serverin çdo ditë për të pastruar rrjedhjet nga Java
- Mos e rifreskoni kurrë serverin, kjo shkakton rrjedhje dhe probleme të tjera
- Përdorni versionet FastAsync të shtojcave si WorldEdit dhe VoxelSniper
- Kufizoni madhësinë e botës tuaj në mënyrë që copa të reja të mos krijohen vazhdimisht
- Kufizoni sasinë e shtojcave që përdorni. Jo të gjitha shtojcat janë ndërtuar mirë dhe sa më shumë të keni aq më shumë probleme do të hasni
LagGoggles
Një pjesë e madhe e vonesës në serverët e modifikuar vjen nga entitetet e pllakave. Këto janë entitetet e krijuara për blloqet që përdoren për përpunimin e funksionalitetit dhe ngjarjeve të bllokut. Nëse këto zgjasin shumë ose ka shumë, mund të rrisë kohën për tik duke ulur totalin e TPS të serverit. Një mënyrë për të vizualizuar këto probleme është të përdorni një mod të quajtur LagGoggles. Ju mund ta shkarkoni këtë mod nga CurseForce .