Răspunsul scurt
Elimină mai întâi pluginurile prost optimizate, pentru că acestea costă mai mult decât toate
celelalte la un loc. Apoi setează batching.colliders "0", plafonează
fps.max între 30 și 100, crește server.saveinterval "600", și ia în
calcul nav_disable "true" și ai.think 0 dacă poți trăi fără
mișcarea animalelor.
Puncte cheie
- Rust are nevoie de viteză de ceas, nu de număr de nuclee. Funcțiile de bază ale Unity sunt single threaded.
- Un singur plugin prost codat poate anula orice altă optimizare de pe această pagină.
- FPS-ul serverului nu este FPS-ul jucătorului. Sunt cifre diferite care măsoară lucruri diferite.
- Măsoară cu pluginul Performance Monitor, apoi elimină-l. Și el costă performanță.
- Fiecare convar de aici este un compromis. Află la ce renunți înainte să îl setezi.
Ce afectează de fapt performanța
Performanța constantă este ceea ce îi asigură pe jucătorii tăi că au un loc sigur în care să joace, unde nu vor pierde o luptă din cauza lagului sau nu vor fi aruncați de pe o stâncă din cauza rubber-banding-ului. Merită să fii precis despre de unde provine, pentru că timpul petrecut pe lucrul greșit este pierdut.
Aproximativ în ordinea impactului:
- Pluginurile. Unul singur, prost scris, poate domina fiecare tick al serverului.
- Viteza de ceas a CPU-ului. Plafonul sub care operează tot restul.
- Numărul de entități. Târziu într-un ciclu de wipe, acesta este lucrul care se schimbă sub tine.
- Operațiile de salvare. Pe o lume mare, se observă de fiecare dată când rulează.
Hardware: viteza de ceas în detrimentul numărului de nuclee
Vei observa o performanță mult mai bună a serverului de la furnizorii care folosesc CPU-uri mai rapide, cu o frecvență de peste 3GHz. Motivul este arhitectural, nu întâmplător: funcțiile de bază ale Unity sunt single threaded, deci rulează pe un singur nucleu și nu pot fi distribuite pe altele. Un CPU cu 32 de nuclee la 2.2GHz va rula un server Rust mai prost decât unul cu 8 nuclee la 4GHz.
Numărul de nuclee nu este irelevant. Lucruri precum AI-ul NPC-urilor și al animalelor, și alte obiecte legate de hartă, pot fi distribuite pe mai multe nuclee, motiv pentru care serverele cu populație mai mare beneficiază cu adevărat de nuclee suplimentare. Un host bun ar trebui să ofere opțiunea de mai multe nuclee pentru un server mai mare și ar trebui, în primul rând, să găzduiască Rust pe CPU-uri de frecvență mare.
Acesta este cel mai util lucru de verificat înainte să cumperi. Dacă un host promovează numărul de nuclee și RAM-ul, dar nu viteza de ceas, de obicei este pentru că viteza de ceas nu este argumentul de vânzare.
Pluginuri: cel mai mare factor
uMod este un addon de modding pentru Rust care permite serverelor să ruleze pluginuri dezvoltate în mare parte de comunitate. Performanța serverului nu va fi afectată de pluginuri bine scrise și întreținute activ.
Va fi distrusă de unul prost. Fără să știi, o mică bucată de cod din oricare dintre pluginurile tale poate degrada sever performanța serverului, și nimic legat de mărimea sau simplitatea aparentă a unui plugin nu îți spune care anume. Chiar și cel mai mic și mai ușor plugin poate provoca haos, așa cum va confirma orice proprietar de server Rust sau dezvoltator de pluginuri cu experiență.
Evită să rulezi prea multe pluginuri. Numărul în sine are un cost, independent de calitatea fiecăruia în parte, iar răspunsul la o problemă este mai des eliminarea unui plugin decât adăugarea unuia.
Optimizarea pluginurilor pe care le păstrezi
Unele pluginuri expun setări de optimizare a performanței, cum ar fi timere și intervale. Acestea sunt de obicei dezactivate implicit sau setate conservator. Caută-le în fișierul de configurare al pluginului și activează-le, pentru că un plugin care verifică la fiecare tick când ar putea verifica la fiecare treizeci de secunde face de treizeci de ori mai multă muncă decât are nevoie.
Măsurarea înainte să schimbi orice
A ghici problemele de performanță irosește timp. Există două măsurători care merită făcute.
FPS-ul serverului
Acesta este ritmul de cadre la care operează serverul. Nu are nicio influență directă
asupra ritmului de cadre al jucătorilor tăi, deși un număr mare de entități într-o
zonă le va afecta pe amândouă. Monitorizează-l prin RCON cu comanda FPS.
Pluginul Performance Monitor
Performance Monitor pentru uMod raportează în timp real informații despre utilizarea memoriei, timpul de hook al pluginurilor și alți timpi care afectează performanța serverului. Îți arată care plugin consumă cel mai mult timp pe un singur hook, transformând "serverul se simte prost" într-un nume concret.
Nu lăsa Performance Monitor să ruleze la nesfârșit. Monitorizarea în sine consumă resurse și va înrăutăți performanța pe care încerci să o măsori. Instalează-l, ia citirile, acționează în funcție de ele, apoi descarcă-l.
Convar-urile care contează
Fiecare dintre acestea este un compromis, nu performanță gratuită. Câștigurile sunt reale, la fel ca și lucrurile la care renunți.
batching.colliders "0"
Elimină nevoia serverului de a grupa entitățile în batch-uri. Este un câștig mare de performanță: cu batching-ul activat, de fiecare dată când cineva construiește, serverul trebuie să degrupeze și apoi să regrupeze toate entitățile asociate.
Rezerva: dacă serverul tău depășește 265.000 de entități, va trebui să îl reactivezi pentru a ocoli limita de entități a Unity. Târziu într-un ciclu lung de wipe pe un server aglomerat, acesta este un număr real, nu unul teoretic, așa că merită urmărit.
nav_disable "true"
Dezactivează NAV mesh-ul de pe serverul tău. Câștigul de performanță este mare. Costul este că animalele și NPC-urile se opresc complet din mișcare.
Dacă asta este acceptabil depinde de serverul tău. Pe un server axat puternic pe PvP, unde nimeni nu vânează căprioare, este aproape gratuit. Pe un server PvE sau de roleplay, elimină o parte importantă a jocului.
ai.think 0
Poate ai observat pe servere mari că animalele nu reacționează și nu se apără. Asta este
ai.think setat pe 0. Are un efect pozitiv semnificativ asupra performanței, în
special când numărul de jucători este mare și jucătorii sunt des aproape de animale.
server.saveinterval "600"
Poți observa scăderi de FPS pe server atunci când acesta salvează, pe un server cu multe entități. Creșterea duratei dintre salvări menține acest lucru la minim.
Compromisul aici este riscul: un interval mai lung înseamnă mai mult progres pierdut dacă serverul se blochează între salvări. 600 de secunde este un echilibru rezonabil, dar dacă serverul tău este instabil din alte motive, nu trata simptomul făcând blocările mai costisitoare.
fps.max
Controlarea FPS-ului serverului tău este, în general, o idee bună, pentru a opri serverul din
a lucra mai mult decât are nevoie, fără niciun beneficiu pentru jucătorii tăi. Facepunch au
spus că jucătorii nu ar observa un server limitat la 30 de cadre pe secundă. Setarea
fps.max la un număr între 30 și 100 este puternic recomandată.
Reporniri
Repornirile zilnice pot ajuta performanța pe serverele moddate. Procesele care rulează mult timp acumulează presiune asupra memoriei, iar pluginurile care au scurgeri lente sunt destul de comune încât o repornire programată este o asigurare rezonabilă.
Programează-le într-o oră liniștită și anunță-le. global.restart le oferă
jucătorilor un avertisment de 300 de secunde la intervale de 5 secunde, ceea ce este suficient
timp pentru a ajunge într-un loc sigur. O repornire silențioasă în mijlocul unui raid te va
costa mai mulți jucători decât câștigul de performanță pe care ți-l aduce.
Ce să faci, în ordine
-
Măsoară mai întâi
Verifică FPS-ul serverului prin RCON și rulează pe scurt Performance Monitor. Fără un punct de referință nu poți spune dacă ceva din ce ai făcut a ajutat.
-
Elimină cel mai rău plugin
Orice a indicat monitorul. Este aproape întotdeauna cel mai mare câștig disponibil, și este gratuit.
-
Reglează pluginurile pe care le păstrezi
Timere și intervale în fișierele lor de configurare, acolo unde există.
-
Aplică convar-urile
Începe cu
batching.colliders "0",fps.maxșiserver.saveinterval, care nu te costă nimic ce jucătorii tăi vor observa. Ia în calculnav_disableșiai.thinkdoar dacă poți accepta viața sălbatică statică. -
Măsoară din nou
Aceleași instrumente, aceleași condiții, ideal cu un număr similar de jucători. Apoi descarcă monitorul.
-
Uită-te la hardware
Dacă ai făcut toate cele de mai sus și performanța este tot slabă, plafonul este CPU-ul, și nicio configurare nu poate depăși asta.
Dacă ai ajuns la acest ultim pas, ghidul nostru despre ce să urmărești când cumperi un server Rust acoperă ce să întrebi un host înainte să te muți.