Cum îți optimizezi serverul / cum citești timings
În acest articol vom învăța cum să vă optimizați serverul Minecraft la maxim. Vă rugăm să rețineți că acesta nu este un set magic de instrucțiuni care va elimina tot lag-ul de pe serverul dvs., dar vă va ajuta.
|||| Acest articol este puțin diferit față de celelalte, fiindcă va fi actualizat foarte frecvent pentru a-l face cât mai bun posibil.
Paper și oricare dintre furcile sale
Pocketmine
Nukkit
Vanilla Bedrock
Vanilla Java
Spigot sau furcile de mai jos
Altele
* Dacă folosiți Spigot sau orice furculiță de mai jos, nu ar trebui să folosiți și ar trebui să folosiți furculițe mai optimizate, cum ar fi Paper sau Purpur (vă recomandăm purpur).
TPS reprezintă ticks pe secundă. Există 20 de ticuri minecraft într-o secundă irl, prin urmare, dacă serverul dvs. nu are întârzieri, ar trebui să funcționeze la 20TPS.
MSPT este cât durează fiecare tick. Cu cât este mai mic acest număr, cu atât mai bine.
Ping (ms). 99,9% din timp, acest lucru nu are legătură cu performanța serverelor dvs. și mai degrabă cu întârzierea de localizare între clientul dvs. și server.
Prima secțiune va necesita editarea fișierelor de configurare a serverului care se află în folderul rădăcină al serverului dumneavoastră.
Pentru a ajunge la aceste fișiere, dacă nu știți cum, urmați acest mini-ghid:
Accesați panoul, la adresa witherpanel.com
Selectați serverul din listă.
Navigați la File Manager (Manager de fișiere) din partea laterală a panoului.
Aici puteți vedea lista fișierelor serverului care include fișierele de configurare pe care le dorim.
Faceți clic pe fișierul paper.yml în Managerul de fișiere, acest lucru va deschide fișierul în browserul web.
Pe tastatură, folosiți keybind-ul Ctrl + F pentru a deschide caseta de căutare.
Puteți căuta setarea prin intermediul acesteia și apoi faceți clic pe enter.
Apoi, schimbăm use-faster-eigencraft-redstone: false în use-faster-eigencraft-redstone: true.
Salvăm fișierul cu ajutorul butonului de salvare.
Acum ați editat o setare în fișierul de configurare, pentru a aplica aceste setări, reporniți serverul.
Există o listă de setări care se recomandă a fi modificate pentru a vă aduce un server cât mai optimizat.
Am putea să le trecem în revistă și să le enumerăm pe toate aici, dar există o listă perfect bună pe care oamenii au făcut-o de-a lungul anilor, pe care vă recomandăm să schimbați setările pentru a se potrivi.
Ghidul care combină o mulțime de alte ghiduri mai mici este aici: https://github.com/YouHaveTrouble/minecraft-optimization și aici https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/
Vă recomandăm să le parcurgeți pe amândouă și să aplicați modificările din ele pe serverul dumneavoastră.
Dacă serverul dvs. necesită să funcționeze cât mai aproape de comportamentul vanilla (în timp ce folosiți furculițele Spigot), unele dintre setările care modifică caracteristicile de bază ale jocului, cum ar fi comportamentul containerelor și generarea mobilor, s-ar putea să nu doriți să le schimbați. Acestea fiind spuse, este serverul tău, așa că faci ce vrei să faci!
Ați urmat aceste 2 ghiduri, modificând o mulțime de setări pe serverul dvs., dar acesta are în continuare un TPS scăzut...
Îți vom arăta cum să depanezi ce cauzează lag-ul pe serverul tău.
Acest lucru este pentru Paper și furcile de mai sus, deoarece Spigot nu are această funcționalitate actualizată (Spigot are doar Timings v1, în timp ce Paper/forks au Timings v2, care este ceea ce avem nevoie).
Pe serverul dumneavoastră, rulați comanda timings on .
Lăsați serverul să funcționeze timp de aproximativ 30 de minute, timp în care timings colectează datele pentru raport.
După 30 de minute, rulați comanda timings paste, și accesați link-ul pe care îl face în consolă.
Aici începe distracția, când trebuie să vă uitați prin cronometrare pentru a vedea care este cauza întârzierii.
Pentru a începe mai ușor, vom arunca o privire la fila PLUGINS, pentru a vedea dacă vreunul dintre plugin-urile dvs. cauzează lag.
Acesta este un exemplu de raport de cronometrare, în fila menționată:
Puteți vedea în imagine că plugin-ul "InventoryRollback" ocupă o cantitate mai mare decât media de tick.
Dacă dați clic pe InventoryRollback::Combined Total, veți obține o listă mai detaliată a evenimentelor pe care le gestionează plugin-ul și care provoacă lag:
Primii pași pe care vă recomandăm să îi faceți este să verificați dacă există o versiune actualizată a plugin-ului pe care îl utilizați, care are mai multe optimizări pentru a reduce decalajul (cum ar fi o actualizare care încearcă să ruleze evenimentele plugin-ului în asincronizare, mai degrabă decât în firul principal al procesorului serverului).
De exemplu, pluginul "InventoryRollback" are o versiune mai nouă, numită "InventoryRollbackPlus", care este o versiune actualizată, îmbunătățită și mai puțin întârziată a pluginului. Consultați aici.
Dacă nu există o astfel de actualizare sau dacă nu există una care să îmbunătățească starea raportului de cronometrare al serverului dumneavoastră, atunci următorul pas pe care vă recomandăm să îl faceți ar fi să căutați ce spune raportul de cronometrare că face pluginul dumneavoastră pentru a provoca lag.
Exemplu: Nu, nu, nu.
Putem vedea că InventoryRollback are unele evenimente care întârzie serverul mai mult decât altele, cum ar fi InventoryRollback::Event: m.d.i.l.EventLogs (PlayerQuitEvent) (consultați captura de ecran).
În configurația InventoryRollback putem vedea că există opțiuni în configurație care controlează momentul în care se face o copie de rezervă a inventarului jucătorilor.
În mod specific, rețineți quit, care este evenimentul cel mai întârziat atunci când citim din cronometrările noastre. Putem dezactiva acest eveniment prin setarea valorii la 0.
Ceea ce urmărește acest lucru este să reducă impactul pe care un anumit plugin îl are asupra ticurilor serverului dumneavoastră.
Urmând acest tip de metodă cu alte plugin-uri care cauzează probleme la cronometrările dumneavoastră, va ajuta la scăderea sarcinii pe serverul dumneavoastră.
Privind această pagina poate părea descurajant la început, dar poate fi împărțit destul de ușor.
Raportul de cronometrare are numerele de "lag" codificate în culori (roșu fiind cel mai rău, albul fiind un impact mic), însă diferitele secțiuni nu sunt codificate, așa că am codificat în culori partea principală a cronometrărilor pe care o vom analiza.
Culori:
Aqua = Entități
Roz = Lumea
Yellow = Plugins
Începând de sus, putem vedea că Full Server Tick este cel mai mult afectat de Minecraft::world -doTick, iar extinzând doTick, vedem că tickEntities este cel mai afectat.
Extinderea următoarelor câteva valori ne aduce la acest lucru:
În aceasta, vedem că `mooshroom`s ocupă o mare parte din tick. Acest lucru înseamnă că, cel mai probabil, există o mulțime de ciuperci pe serverul tău.
Acest lucru se poate întâmpla din mai multe motive, cum ar fi:
Jucătorii care le folosesc pentru ferme.
Setările serverului tău pentru generarea mobilor sunt ridicate și permit generarea multor ciuperci.
Se încarcă o mulțime de bucăți care conțin mob-ul.
Lucrurile pe care le-ai putea face pentru a reduce impactul acestor lucruri enumerate ar putea fi lucruri precum:
Introducerea unui AFK kick, astfel încât jucătorii să nu poată ține chunks încărcate pentru perioade lungi de timp.
Schimbarea setărilor de spawning mob în bukkit.yml pentru a reduce numărul de spawns. S-ar putea să doriți să activați per-player-mob-spawns în paper.yml, care are ca scop să schimbe mai corect distribuția moburilor între jucătorii de pe server (acest lucru poate duce la generarea mai multor moburi, în funcție de modul în care este configurat serverul dumneavoastră).
Reducerea distanței de redare pentru chunks și activarea setărilor no-tick-distance în paper.yml.
În cronometrările din exemplul meu, aproape tot lag-ul provine de la mob-ul care se generează în bucăți. Reducerea distanței de randare în timp ce setați no-tick-distance în paper.yml ar ajuta la problema mobilor care generează într-o zonă largă, deoarece distanța fără tick este ca distanța de randare (distanța de vizualizare), dar chunks nu se bifează, deci mobii nu vor genera în ele. În cronometrare, pot vedea că o mulțime de mobs în chunks și sarcini de spawning cauzează majoritatea problemelor cu lag-ul. Reducerea mob spawning-ului și a plafonului ar ajuta la rezolvarea acestei probleme.
Parcurgerea raportului de cronometrare în acest fel vă va ajuta să identificați de unde provine lag-ul TPS și MSPT și este necesar pentru ca serverul dvs. să funcționeze fără probleme.
Încercați să nu folosiți un număr exagerat de plugin-uri, deoarece acestea pot utiliza multe resurse, mai ales dacă sunt codate prost, și fiți rezonabil cu setările serverului.
Pentru ajutor cu optimizarea serverului în continuare, nu ezitați să îl contactați pe MrRazamataz#6614 în #community-help în [Server-ul de Discord al WitherHosting] (https://discord.gg/jbmzKhgbhp).
Ultima actualizare: 13/09/2021 @ 21:19 GMT + 1
|||| Acest articol este puțin diferit față de celelalte, fiindcă va fi actualizat foarte frecvent pentru a-l face cât mai bun posibil.
Software-ul pentru care se aplică:
Paper și oricare dintre furcile sale
Software pentru care nu se aplică:
Pocketmine
Nukkit
Vanilla Bedrock
Vanilla Java
Spigot sau furcile de mai jos
Altele
* Dacă folosiți Spigot sau orice furculiță de mai jos, nu ar trebui să folosiți și ar trebui să folosiți furculițe mai optimizate, cum ar fi Paper sau Purpur (vă recomandăm purpur).
Termeni cheie:
TPS reprezintă ticks pe secundă. Există 20 de ticuri minecraft într-o secundă irl, prin urmare, dacă serverul dvs. nu are întârzieri, ar trebui să funcționeze la 20TPS.
MSPT este cât durează fiecare tick. Cu cât este mai mic acest număr, cu atât mai bine.
Ping (ms). 99,9% din timp, acest lucru nu are legătură cu performanța serverelor dvs. și mai degrabă cu întârzierea de localizare între clientul dvs. și server.
Noțiuni de bază:
Prima secțiune va necesita editarea fișierelor de configurare a serverului care se află în folderul rădăcină al serverului dumneavoastră.
Pentru a ajunge la aceste fișiere, dacă nu știți cum, urmați acest mini-ghid:
Accesarea și editarea fișierelor de configurare:
Accesați panoul, la adresa witherpanel.com
Selectați serverul din listă.
Navigați la File Manager (Manager de fișiere) din partea laterală a panoului.
Aici puteți vedea lista fișierelor serverului care include fișierele de configurare pe care le dorim.
Vom încerca să edităm fișierul de configurare numit paper.yml și vom seta use-faster-eigencraft-redstone la true.
Faceți clic pe fișierul paper.yml în Managerul de fișiere, acest lucru va deschide fișierul în browserul web.
Pe tastatură, folosiți keybind-ul Ctrl + F pentru a deschide caseta de căutare.
Puteți căuta setarea prin intermediul acesteia și apoi faceți clic pe enter.
Apoi, schimbăm use-faster-eigencraft-redstone: false în use-faster-eigencraft-redstone: true.
Salvăm fișierul cu ajutorul butonului de salvare.
Acum ați editat o setare în fișierul de configurare, pentru a aplica aceste setări, reporniți serverul.
Settings
Există o listă de setări care se recomandă a fi modificate pentru a vă aduce un server cât mai optimizat.
Am putea să le trecem în revistă și să le enumerăm pe toate aici, dar există o listă perfect bună pe care oamenii au făcut-o de-a lungul anilor, pe care vă recomandăm să schimbați setările pentru a se potrivi.
Ghidul care combină o mulțime de alte ghiduri mai mici este aici: https://github.com/YouHaveTrouble/minecraft-optimization și aici https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/
Vă recomandăm să le parcurgeți pe amândouă și să aplicați modificările din ele pe serverul dumneavoastră.
Dacă serverul dvs. necesită să funcționeze cât mai aproape de comportamentul vanilla (în timp ce folosiți furculițele Spigot), unele dintre setările care modifică caracteristicile de bază ale jocului, cum ar fi comportamentul containerelor și generarea mobilor, s-ar putea să nu doriți să le schimbați. Acestea fiind spuse, este serverul tău, așa că faci ce vrei să faci!
Găsirea cauzelor de lag:
Ați urmat aceste 2 ghiduri, modificând o mulțime de setări pe serverul dvs., dar acesta are în continuare un TPS scăzut...
Îți vom arăta cum să depanezi ce cauzează lag-ul pe serverul tău.
Acest lucru este pentru Paper și furcile de mai sus, deoarece Spigot nu are această funcționalitate actualizată (Spigot are doar Timings v1, în timp ce Paper/forks au Timings v2, care este ceea ce avem nevoie).
Pași:
Pe serverul dumneavoastră, rulați comanda timings on .
Lăsați serverul să funcționeze timp de aproximativ 30 de minute, timp în care timings colectează datele pentru raport.
După 30 de minute, rulați comanda timings paste, și accesați link-ul pe care îl face în consolă.
Aici începe distracția, când trebuie să vă uitați prin cronometrare pentru a vedea care este cauza întârzierii.
Walkthrough:
Pentru a începe mai ușor, vom arunca o privire la fila PLUGINS, pentru a vedea dacă vreunul dintre plugin-urile dvs. cauzează lag.
Acesta este un exemplu de raport de cronometrare, în fila menționată:
Puteți vedea în imagine că plugin-ul "InventoryRollback" ocupă o cantitate mai mare decât media de tick.
Dacă dați clic pe InventoryRollback::Combined Total, veți obține o listă mai detaliată a evenimentelor pe care le gestionează plugin-ul și care provoacă lag:
Primii pași pe care vă recomandăm să îi faceți este să verificați dacă există o versiune actualizată a plugin-ului pe care îl utilizați, care are mai multe optimizări pentru a reduce decalajul (cum ar fi o actualizare care încearcă să ruleze evenimentele plugin-ului în asincronizare, mai degrabă decât în firul principal al procesorului serverului).
De exemplu, pluginul "InventoryRollback" are o versiune mai nouă, numită "InventoryRollbackPlus", care este o versiune actualizată, îmbunătățită și mai puțin întârziată a pluginului. Consultați aici.
Dacă nu există o astfel de actualizare sau dacă nu există una care să îmbunătățească starea raportului de cronometrare al serverului dumneavoastră, atunci următorul pas pe care vă recomandăm să îl faceți ar fi să căutați ce spune raportul de cronometrare că face pluginul dumneavoastră pentru a provoca lag.
Exemplu: Nu, nu, nu.
Putem vedea că InventoryRollback are unele evenimente care întârzie serverul mai mult decât altele, cum ar fi InventoryRollback::Event: m.d.i.l.EventLogs (PlayerQuitEvent) (consultați captura de ecran).
În configurația InventoryRollback putem vedea că există opțiuni în configurație care controlează momentul în care se face o copie de rezervă a inventarului jucătorilor.
În mod specific, rețineți quit, care este evenimentul cel mai întârziat atunci când citim din cronometrările noastre. Putem dezactiva acest eveniment prin setarea valorii la 0.
Ceea ce urmărește acest lucru este să reducă impactul pe care un anumit plugin îl are asupra ticurilor serverului dumneavoastră.
Urmând acest tip de metodă cu alte plugin-uri care cauzează probleme la cronometrările dumneavoastră, va ajuta la scăderea sarcinii pe serverul dumneavoastră.
Acum trecem la pagina TIMINGS.
Privind această pagina poate părea descurajant la început, dar poate fi împărțit destul de ușor.
Raportul de cronometrare are numerele de "lag" codificate în culori (roșu fiind cel mai rău, albul fiind un impact mic), însă diferitele secțiuni nu sunt codificate, așa că am codificat în culori partea principală a cronometrărilor pe care o vom analiza.
Culori:
Aqua = Entități
Roz = Lumea
Yellow = Plugins
Începând de sus, putem vedea că Full Server Tick este cel mai mult afectat de Minecraft::world -doTick, iar extinzând doTick, vedem că tickEntities este cel mai afectat.
Extinderea următoarelor câteva valori ne aduce la acest lucru:
În aceasta, vedem că `mooshroom`s ocupă o mare parte din tick. Acest lucru înseamnă că, cel mai probabil, există o mulțime de ciuperci pe serverul tău.
Acest lucru se poate întâmpla din mai multe motive, cum ar fi:
Jucătorii care le folosesc pentru ferme.
Setările serverului tău pentru generarea mobilor sunt ridicate și permit generarea multor ciuperci.
Se încarcă o mulțime de bucăți care conțin mob-ul.
Lucrurile pe care le-ai putea face pentru a reduce impactul acestor lucruri enumerate ar putea fi lucruri precum:
Introducerea unui AFK kick, astfel încât jucătorii să nu poată ține chunks încărcate pentru perioade lungi de timp.
Schimbarea setărilor de spawning mob în bukkit.yml pentru a reduce numărul de spawns. S-ar putea să doriți să activați per-player-mob-spawns în paper.yml, care are ca scop să schimbe mai corect distribuția moburilor între jucătorii de pe server (acest lucru poate duce la generarea mai multor moburi, în funcție de modul în care este configurat serverul dumneavoastră).
Reducerea distanței de redare pentru chunks și activarea setărilor no-tick-distance în paper.yml.
În cronometrările din exemplul meu, aproape tot lag-ul provine de la mob-ul care se generează în bucăți. Reducerea distanței de randare în timp ce setați no-tick-distance în paper.yml ar ajuta la problema mobilor care generează într-o zonă largă, deoarece distanța fără tick este ca distanța de randare (distanța de vizualizare), dar chunks nu se bifează, deci mobii nu vor genera în ele. În cronometrare, pot vedea că o mulțime de mobs în chunks și sarcini de spawning cauzează majoritatea problemelor cu lag-ul. Reducerea mob spawning-ului și a plafonului ar ajuta la rezolvarea acestei probleme.
Parcurgerea raportului de cronometrare în acest fel vă va ajuta să identificați de unde provine lag-ul TPS și MSPT și este necesar pentru ca serverul dvs. să funcționeze fără probleme.
Încercați să nu folosiți un număr exagerat de plugin-uri, deoarece acestea pot utiliza multe resurse, mai ales dacă sunt codate prost, și fiți rezonabil cu setările serverului.
Pentru ajutor cu optimizarea serverului în continuare, nu ezitați să îl contactați pe MrRazamataz#6614 în #community-help în [Server-ul de Discord al WitherHosting] (https://discord.gg/jbmzKhgbhp).
Ultima actualizare: 13/09/2021 @ 21:19 GMT + 1
Actualizat în: 16/06/2022
Mulțumim!