Paano i-optimize ang iyong minecraft server at magbasa ng mga timing
Sa artikulong ito matututunan natin kung paano i-optimize ang iyong Minecraft server sa kabuuan nito. Pakitandaan, hindi ito isang magic set ng mga tagubilin na mag-aalis ng lahat ng lag sa iyong server, ngunit makakatulong ang mga ito.
Ang artikulong ito ay medyo naiiba sa ibang artikolo, dahil ito ay maa-update nang napakadalas upang gawin itong pinakamahusay nito.
Paper and any of its forks
Pocketmine
Nukkit
Vanilla Bedrock
Vanilla Java
Spigot or below forks
Others
* Kung gumagamit ka ng Spigot o anumang mga forks sa ibaba, talagang hindi ka dapat at dapat ay gumagamit ng mas na-optimize na mga forks, tulad ng Paper o Purpur (inirerekumenda namin ang purpur).
TPS ay ang ticks per second. Mayroong 20 minecraft ticks sa isang irl second, samakatuwid kung ang iyong server ay hindi nahuhuli, dapat itong tumatakbo sa 20TPS.
MSPT ay kung gaano katagal ang bawat tick. Kung lower ang numerong ito, mas mabuti.
Ping (ms). 99.9% of the time, this is not related to your servers performance, and rather, the location delay between your client and the server.
Ang unang seksyon ay mangangailangan ng pag-edit ng iyong mga file ng config ng server na matatagpuan sa root folder ng iyong server.
Upang makarating sa mga file na ito kung hindi mo alam kung paano, sundin ang mini guide na ito:
Pumunta sa panel, sa witherpanel.com
Piliin ang server mula sa listahan.
Mag-navigate sa File Manager sa gilid ng panel.
Dito makikita mo ang listahan ng mga file ng server na kinabibilangan ng mga config file na gusto natin.
Mag-click sa paper.yml file sa File Manager, bubuksan nito ang file sa web browser.
Sa iyong keyboard, gamitin ang keybind Ctrl + F upang buksan ang box para sa paghahanap.
Maaari mong hanapin ang setting sa pamamagitan nito, at pagkatapos ay i-click enter.
Tapos, babaguhin natin use-faster-eigencraft-redstone: false sa use-faster-eigencraft-redstone: true.
I-save ang file gamit ang save button.
Na-edit mo na ngayon ang isang setting sa config file, upang ilapat ang mga setting na ito, i-restart ang iyong server.
Mayroong isang listahan ng mga setting na inirerekomendang baguhin upang maihatid sa iyo ang pinakana-optimize na server.
Maaari nating suriin at ilista ang lahat dito, ngunit mayroong isang perpektong listahan na ginawa ng mga tao sa paglipas ng mga taon, na inirerekomenda naming baguhin mo ang mga setting upang tumugma.
Narito ang gabay na pinagsasama ang maraming iba pang maliliit na gabay: https://github.com/YouHaveTrouble/minecraft-optimization at dito https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/
Inirerekomenda namin na suriin mo ang mga ito pareho, at ilapat ang mga pagbabago mula sa mga ito sa iyong server.
Kung kinakailangan ng iyong server na gumana nang mas malapit sa behaviour ng vanilla hangga't maaari (habang ginagamit ang Spigot forks), ilan sa mga setting na nagbabago sa mga pangunahing feature ng laro, tulad ng pag-uugali ng container at pag-spawning ng mob, maaaring hindi mo gustong baguhin. Iyon ay sinabi, ang iyong server, kaya gawin mo kung ano ang gusto mong gawin!
Sinunod mo ang 2 gabay na iyon, nagbabago ng maraming setting sa iyong server, ngunit mayroon pa rin itong mababang TPS... Ipapakita namin sa iyo kung paano i-debug kung ano ang nagiging sanhi ng lag sa iyong server.
Ito ay para sa Paper at sa itaas na mga tinidor, dahil ang Spigot ay walang ganitong na-update na pagpapagana (Spigot mayroon lamang Timings v1, samantalang Paper/forks magkaroon ng Timings v2, na kung ano ang kailangan namin).
Sa iyong server, patakbuhin ang command timings on .
Iwanan ang iyong server na tumatakbo nang humigit-kumulang 30 min, habang ang mga timing ay nangongolekta ng data para sa ulat.
Pagkatapos ng 30 minuto, patakbuhin ang command timings paste, at pumunta sa link na ginagawa nito sa console.
Dito magsisimula ang kasiyahan, tinitingnan ang mga timing upang makita kung ano ang nagiging sanhi ng lag.
Upang magsimula nang mas madali, titingnan natin ang PLUGINS tab, upang makita kung nagdudulot ng lag ang alinman sa iyong mga plugin. Ito ay isang halimbawang ulat ng timing, sa nasabing tab:
Makikita mo sa larawan na ang plugin "InventoryRollback" ay kumukuha ng higit sa average na halaga ng tick.
Ang pag-click sa InventoryRollback::Combined Total, ay magdadala ng mas detalyadong listahan ng mga kaganapan na pinangangasiwaan ng plugin, na nagdudulot ng lag:
Ang mga unang hakbang na inirerekomenda naming gawin mo, ay tingnan kung may na-update na bersyon ng plugin na ginagamit mo, na mayroong higit pang mga pag-optimize sa lugar, upang mabawasan ang lag (tulad ng isang update na sumusubok na patakbuhin ang mga kaganapan sa plugin sa async, sa halip pagkatapos ay sa pangunahing server ng CPU thread).
Halimbawa, ang plugin na "InventoryRollback" ay may mas bagong bersyon, na tinatawag na "InventoryRollbackPlus", na isang na-update, pinahusay at hindi gaanong laggy na bersyon ng plugin. Tingnan here.
Kung walang ganoong pag-update, o walang isa na nagpapahusay sa estado ng ulat ng mga timing ng iyong server, pagkatapos ay tingnan kung ano ang sinasabi ng ulat ng mga timing na ginagawa ng iyong plugin upang magdulot ng lag ang magiging susunod na hakbang na inirerekomenda namin na gawin mo.
Halimbawa:
Makikita natin na ang Inventory Rollback ay may ilang mga kaganapan na mas nahuhuli sa server kaysa sa iba, tulad ng, InventoryRollback::Event: m.d.i.l.EventLogs (PlayerQuitEvent) (sumangguni sa screenshot).
Sa Inventory Rollback config makikita natin na may mga opsyon sa config na kumokontrol kapag kailangan ng backup ng imbentaryo ng mga manlalaro.
Sa partikular, tandaan quit, na pinaka-laggy na kaganapan kapag nagbabasa mula sa aming mga timing. Maaari naming i-disable ang kaganapang iyon sa pamamagitan ng pagtatakda ng halaga sa 0.
Ang nilalayon nitong gawin ay bawasan ang epekto ng isang partikular na plugin sa mga ticks ng iyong server.
Ang pagsunod sa ganitong uri ng pamamaraan sa iba pang mga plugin na nagdudulot ng mga isyu sa iyong mga timing, ay makakatulong na bawasan ang pag-load sa iyong server.
Ang pagtingin sa tab na ito ay maaaring mukhang nakakatakot sa una, ngunit maaari itong masira nang madali.
Ang ulat ng mga timing ay may mga numero ng "lag" color-coded (pula ang pinakamasama, puti ang maliit na epekto), gayunpaman, ang iba't ibang mga seksyon ay hindi, kaya nilagyan ko ng kulay ang pangunahing bahagi ng Timing na titingnan natin.
Mgakulay:
Aqua = Entities
Pink = World
Yellow = Plugins
Simula sa una, makikita natin na ang Full Server Tick ay higit na naaapektuhan ng Minecraft::world -doTick, at lumalawak doTick, Nakikita namin tickEntities pagiging top-lagger.
Ang pagpapalawak sa susunod na ilang mga halaga ay nagdudulot sa atin dito:
Dito, nakikita natin ang `mooshroom`s ay kumukuha nang marami na mga tick. Nangangahulugan ito na malamang na maraming mushroom sa iyong server.
Maaaring mangyari ito sa maraming dahilan, gaya ng:
Ginagamit ng mga manlalaro ang mga ito para sa mga sakahan.
Ang mga setting ng mob spawning ng iyong server ay mataas at nagbibigay-daan sa maraming mag-spawn.
Maraming mga chunks na naglalaman ng mga mandurumog ay na-load.
Ang mga bagay na maaari mong gawin upang mabawasan ang epekto ng mga nakalistang bagay na ito ay maaaring mga bagay tulad ng:
Ipinapakilala ang isang AFK kick, kaya hindi mapapanatili ng mga manlalaro na may load ang mga chunks sa mahabang panahon.
Pagbabago sa mga setting ng mob spawning sa bukkit.yml upang bawasan ang dami ng mga spawn. Baka gusto mong paganahin ang per-player-mob-spawns in paper.yml, na naglalayong baguhin ang pamamahagi ng mga mandurumog sa pagitan ng mga manlalaro sa server nang mas patas (maaaring magresulta ito sa mas maraming mga mandurumog na lumitaw, depende sa kung paano naka-setup ang iyong server).
Binabawasan ang distansya ng pag-render para sa mga chunks, at pinapagana ang mga setting ng no-tick-distance sa paper.yml.
Sa aking mga halimbawang timing, halos lahat ng lag ay nagmumula sa nagkakagulong mga tao na nag-spawning sa mga tipak. Binabawasan ang distansya ng pag-render habang itinatakda ang no-tick-distance sa paper.yml ay makakatulong sa isyu ng mga mang-uumog sa malawak na lugar, dahil ang walang tik na distansya ay parang render na distansya (view distance), ngunit ang mga chunks ay hindi nagti-tick, kaya ang mga mobs ay hindi mag-spawn sa kanila. Sa mga timing, nakakakita ako ng maraming mobs sa loob ng chunks at spawing tasks nag sasanhi karamihan ng mga isyu sa lag. Ang pagbabawas ng mob spawning at cap ay makakatulong sa paglutas ng isyung ito.
Ang pagdaan sa ulat ng mga timing tulad nito ay makakatulong sa iyong matukoy kung saan nanggagaling ang TPS at MSPT lag at kinakailangan para sa iyong server na tumakbo nang maayos.
Subukang huwag gumamit ng higit sa pinakamataas na dami ng mga plugin, dahil ang mga ito ay maaaring gumamit ng maraming mapagkukunan lalo na kung naka-code nang masama, at maging makatwiran sa mga setting ng iyong server.
Para sa karagdagang tulong sa pag-optimize ng server, huwag mag-atubiling i-ping si Mr Razamataz#6614 sa #community-help sa WitherHosting Discord server.
Ang artikulong ito ay medyo naiiba sa ibang artikolo, dahil ito ay maa-update nang napakadalas upang gawin itong pinakamahusay nito.
Software kung saan ito nalalapat:
Paper and any of its forks
Software na hindi ito nalalapat:
Pocketmine
Nukkit
Vanilla Bedrock
Vanilla Java
Spigot or below forks
Others
* Kung gumagamit ka ng Spigot o anumang mga forks sa ibaba, talagang hindi ka dapat at dapat ay gumagamit ng mas na-optimize na mga forks, tulad ng Paper o Purpur (inirerekumenda namin ang purpur).
Key Terms:
TPS ay ang ticks per second. Mayroong 20 minecraft ticks sa isang irl second, samakatuwid kung ang iyong server ay hindi nahuhuli, dapat itong tumatakbo sa 20TPS.
MSPT ay kung gaano katagal ang bawat tick. Kung lower ang numerong ito, mas mabuti.
Ping (ms). 99.9% of the time, this is not related to your servers performance, and rather, the location delay between your client and the server.
Nagsisimula:
Ang unang seksyon ay mangangailangan ng pag-edit ng iyong mga file ng config ng server na matatagpuan sa root folder ng iyong server.
Upang makarating sa mga file na ito kung hindi mo alam kung paano, sundin ang mini guide na ito:
Pagkuha at pag-edit ng mga config file:
Pumunta sa panel, sa witherpanel.com
Piliin ang server mula sa listahan.
Mag-navigate sa File Manager sa gilid ng panel.
Dito makikita mo ang listahan ng mga file ng server na kinabibilangan ng mga config file na gusto natin.
Susubukan nating i-edit ang config file na tinatawag na paper.yml at itatakda natin ang use-faster-eigencraft-redstone to true.
Mag-click sa paper.yml file sa File Manager, bubuksan nito ang file sa web browser.
Sa iyong keyboard, gamitin ang keybind Ctrl + F upang buksan ang box para sa paghahanap.
Maaari mong hanapin ang setting sa pamamagitan nito, at pagkatapos ay i-click enter.
Tapos, babaguhin natin use-faster-eigencraft-redstone: false sa use-faster-eigencraft-redstone: true.
I-save ang file gamit ang save button.
Na-edit mo na ngayon ang isang setting sa config file, upang ilapat ang mga setting na ito, i-restart ang iyong server.
Settings
Mayroong isang listahan ng mga setting na inirerekomendang baguhin upang maihatid sa iyo ang pinakana-optimize na server.
Maaari nating suriin at ilista ang lahat dito, ngunit mayroong isang perpektong listahan na ginawa ng mga tao sa paglipas ng mga taon, na inirerekomenda naming baguhin mo ang mga setting upang tumugma.
Narito ang gabay na pinagsasama ang maraming iba pang maliliit na gabay: https://github.com/YouHaveTrouble/minecraft-optimization at dito https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/
Inirerekomenda namin na suriin mo ang mga ito pareho, at ilapat ang mga pagbabago mula sa mga ito sa iyong server.
Kung kinakailangan ng iyong server na gumana nang mas malapit sa behaviour ng vanilla hangga't maaari (habang ginagamit ang Spigot forks), ilan sa mga setting na nagbabago sa mga pangunahing feature ng laro, tulad ng pag-uugali ng container at pag-spawning ng mob, maaaring hindi mo gustong baguhin. Iyon ay sinabi, ang iyong server, kaya gawin mo kung ano ang gusto mong gawin!
Paghahanap ng mga sanhi ng lag:
Sinunod mo ang 2 gabay na iyon, nagbabago ng maraming setting sa iyong server, ngunit mayroon pa rin itong mababang TPS... Ipapakita namin sa iyo kung paano i-debug kung ano ang nagiging sanhi ng lag sa iyong server.
Ito ay para sa Paper at sa itaas na mga tinidor, dahil ang Spigot ay walang ganitong na-update na pagpapagana (Spigot mayroon lamang Timings v1, samantalang Paper/forks magkaroon ng Timings v2, na kung ano ang kailangan namin).
Mga Hakbang:
Sa iyong server, patakbuhin ang command timings on .
Iwanan ang iyong server na tumatakbo nang humigit-kumulang 30 min, habang ang mga timing ay nangongolekta ng data para sa ulat.
Pagkatapos ng 30 minuto, patakbuhin ang command timings paste, at pumunta sa link na ginagawa nito sa console.
Dito magsisimula ang kasiyahan, tinitingnan ang mga timing upang makita kung ano ang nagiging sanhi ng lag.
Walkthrough:
Upang magsimula nang mas madali, titingnan natin ang PLUGINS tab, upang makita kung nagdudulot ng lag ang alinman sa iyong mga plugin. Ito ay isang halimbawang ulat ng timing, sa nasabing tab:
Makikita mo sa larawan na ang plugin "InventoryRollback" ay kumukuha ng higit sa average na halaga ng tick.
Ang pag-click sa InventoryRollback::Combined Total, ay magdadala ng mas detalyadong listahan ng mga kaganapan na pinangangasiwaan ng plugin, na nagdudulot ng lag:
Ang mga unang hakbang na inirerekomenda naming gawin mo, ay tingnan kung may na-update na bersyon ng plugin na ginagamit mo, na mayroong higit pang mga pag-optimize sa lugar, upang mabawasan ang lag (tulad ng isang update na sumusubok na patakbuhin ang mga kaganapan sa plugin sa async, sa halip pagkatapos ay sa pangunahing server ng CPU thread).
Halimbawa, ang plugin na "InventoryRollback" ay may mas bagong bersyon, na tinatawag na "InventoryRollbackPlus", na isang na-update, pinahusay at hindi gaanong laggy na bersyon ng plugin. Tingnan here.
Kung walang ganoong pag-update, o walang isa na nagpapahusay sa estado ng ulat ng mga timing ng iyong server, pagkatapos ay tingnan kung ano ang sinasabi ng ulat ng mga timing na ginagawa ng iyong plugin upang magdulot ng lag ang magiging susunod na hakbang na inirerekomenda namin na gawin mo.
Halimbawa:
Makikita natin na ang Inventory Rollback ay may ilang mga kaganapan na mas nahuhuli sa server kaysa sa iba, tulad ng, InventoryRollback::Event: m.d.i.l.EventLogs (PlayerQuitEvent) (sumangguni sa screenshot).
Sa Inventory Rollback config makikita natin na may mga opsyon sa config na kumokontrol kapag kailangan ng backup ng imbentaryo ng mga manlalaro.
Sa partikular, tandaan quit, na pinaka-laggy na kaganapan kapag nagbabasa mula sa aming mga timing. Maaari naming i-disable ang kaganapang iyon sa pamamagitan ng pagtatakda ng halaga sa 0.
Ang nilalayon nitong gawin ay bawasan ang epekto ng isang partikular na plugin sa mga ticks ng iyong server.
Ang pagsunod sa ganitong uri ng pamamaraan sa iba pang mga plugin na nagdudulot ng mga isyu sa iyong mga timing, ay makakatulong na bawasan ang pag-load sa iyong server.
Ngayon ay sa`TIMINGS` tab.
Ang pagtingin sa tab na ito ay maaaring mukhang nakakatakot sa una, ngunit maaari itong masira nang madali.
Ang ulat ng mga timing ay may mga numero ng "lag" color-coded (pula ang pinakamasama, puti ang maliit na epekto), gayunpaman, ang iba't ibang mga seksyon ay hindi, kaya nilagyan ko ng kulay ang pangunahing bahagi ng Timing na titingnan natin.
Mgakulay:
Aqua = Entities
Pink = World
Yellow = Plugins
Simula sa una, makikita natin na ang Full Server Tick ay higit na naaapektuhan ng Minecraft::world -doTick, at lumalawak doTick, Nakikita namin tickEntities pagiging top-lagger.
Ang pagpapalawak sa susunod na ilang mga halaga ay nagdudulot sa atin dito:
Dito, nakikita natin ang `mooshroom`s ay kumukuha nang marami na mga tick. Nangangahulugan ito na malamang na maraming mushroom sa iyong server.
Maaaring mangyari ito sa maraming dahilan, gaya ng:
Ginagamit ng mga manlalaro ang mga ito para sa mga sakahan.
Ang mga setting ng mob spawning ng iyong server ay mataas at nagbibigay-daan sa maraming mag-spawn.
Maraming mga chunks na naglalaman ng mga mandurumog ay na-load.
Ang mga bagay na maaari mong gawin upang mabawasan ang epekto ng mga nakalistang bagay na ito ay maaaring mga bagay tulad ng:
Ipinapakilala ang isang AFK kick, kaya hindi mapapanatili ng mga manlalaro na may load ang mga chunks sa mahabang panahon.
Pagbabago sa mga setting ng mob spawning sa bukkit.yml upang bawasan ang dami ng mga spawn. Baka gusto mong paganahin ang per-player-mob-spawns in paper.yml, na naglalayong baguhin ang pamamahagi ng mga mandurumog sa pagitan ng mga manlalaro sa server nang mas patas (maaaring magresulta ito sa mas maraming mga mandurumog na lumitaw, depende sa kung paano naka-setup ang iyong server).
Binabawasan ang distansya ng pag-render para sa mga chunks, at pinapagana ang mga setting ng no-tick-distance sa paper.yml.
Sa aking mga halimbawang timing, halos lahat ng lag ay nagmumula sa nagkakagulong mga tao na nag-spawning sa mga tipak. Binabawasan ang distansya ng pag-render habang itinatakda ang no-tick-distance sa paper.yml ay makakatulong sa isyu ng mga mang-uumog sa malawak na lugar, dahil ang walang tik na distansya ay parang render na distansya (view distance), ngunit ang mga chunks ay hindi nagti-tick, kaya ang mga mobs ay hindi mag-spawn sa kanila. Sa mga timing, nakakakita ako ng maraming mobs sa loob ng chunks at spawing tasks nag sasanhi karamihan ng mga isyu sa lag. Ang pagbabawas ng mob spawning at cap ay makakatulong sa paglutas ng isyung ito.
Ang pagdaan sa ulat ng mga timing tulad nito ay makakatulong sa iyong matukoy kung saan nanggagaling ang TPS at MSPT lag at kinakailangan para sa iyong server na tumakbo nang maayos.
Subukang huwag gumamit ng higit sa pinakamataas na dami ng mga plugin, dahil ang mga ito ay maaaring gumamit ng maraming mapagkukunan lalo na kung naka-code nang masama, at maging makatwiran sa mga setting ng iyong server.
Para sa karagdagang tulong sa pag-optimize ng server, huwag mag-atubiling i-ping si Mr Razamataz#6614 sa #community-help sa WitherHosting Discord server.
Updated on: 16/06/2022
Thank you!