Blog · blog
Migliori Mod di Performance per Server Minecraft
Il lag lato server è un problema diverso dal frame rate del client. Paper o Purpur, flag JVM ottimizzati, chunk pregenerati e una distanza di visuale ragionevole risolvono la maggior parte dei casi.
Il lag del server è una questione diversa dal lag del client
Le guide lato client parlano di FPS: la tua GPU che disegna fotogrammi. Le prestazioni del server sono una misurazione completamente separata, i tick al secondo, quante volte al secondo il server può eseguire il suo intero ciclo di gioco. Quando i TPS scendono sotto le 20, ogni giocatore connesso lo percepisce come rubber-banding, colpi ritardati e mob che rimangono indietro rispetto alla loro posizione effettiva, indipendentemente dalla potenza del PC di qualsiasi singolo giocatore. La risoluzione di questo problema risiede interamente sul lato server della connessione.
Questa distinzione è importante perché i due problemi vengono costantemente confusi. Un giocatore con 300 FPS localmente sentirà comunque un server che funziona a 12 TPS, e nessun cambiamento nel client può risolvere questo problema. Se gestisci un server, soprattutto un lobby di minigiochi affollato con arene di BedWars o SkyWars che si resettano costantemente, le soluzioni indicate di seguito sono dove il tuo tempo darà i maggiori risultati.
Scegli un software server progettato per gestire il carico
Il software server Vanilla Minecraft e una configurazione Spigot non ottimizzata eseguono quasi tutto su un singolo thread. Paper, e fork come Purpur, ricostruiscono ampie parti di quella pipeline per eseguirla in modo asincrono e multithreaded, oltre a includere una lunga lista di ottimizzazioni predefinite che Vanilla non aveva mai. Questo è il singolo strumento più potente a disposizione prima di toccare anche un singolo plugin o impostazione.
Carta
La scelta moderna standard. Caricamento asincrono dei chunk, ottimizzazioni del tracciamento delle entità e un set approfondito di opzioni di tuning in paper.yml che la maggior parte degli amministratori non esplora mai appieno.
Porpora
Una forchetta di carta con manopole per prestazioni extra e interruttori di gioco sovrapposti. Vale la pena se desideri maggiore controllo senza uscire dall'ecosistema Paper.
Vaniglia e rubinetto standard
Funzionale, ma spreca le vere prestazioni per qualsiasi cosa che vada oltre un piccolo server a bassa popolazione.
Ottimizza le flag della JVM, non solo la configurazione del server
I server di Minecraft funzionano all'interno di una Java Virtual Machine, e le impostazioni predefinite della garbage collection della JVM non sono mai state ottimizzate per il pattern di memoria specifico di Minecraft. Le flag di Aikar sono un set ampiamente utilizzato e pubblicamente documentato di flag di avvio della JVM che configurano il garbage collector specificamente per tale pattern, e riducono significativamente la frequenza e la durata dei blocchi legati alla GC sotto carico reale dei giocatori.
Pre-genera il tuo mondo prima che i giocatori lo vedano
Una delle cause più comuni di un improvviso calo di TPS è la generazione di nuovi chunk da parte del server in tempo reale mentre i giocatori esplorano territori non rivendicati. Questo lavoro di generazione compete direttamente con tutto ciò che il server sta cercando di fare nello stesso tick. Uno strumento come Chunky pre-genera i chunk in anticipo, in una passata controllata e limitata, in modo che i giocatori che esplorano in seguito non attivino mai un picco.
Per una rete di minigiochi, questo è meno importante per le mappe dell'arena, che di solito sono statiche e piccole, e più per qualsiasi hub o mondo di lobby aperto in cui i giocatori possono vagare.
Riduci la distanza di visualizzazione e la distanza di simulazione
Queste due impostazioni controllano quanta parte del mondo il server deve mantenere caricata e simulata attorno a ogni giocatore, e sono le impostazioni che gli operatori lasciano più spesso ai valori predefiniti, semplicemente troppo alti per il numero di giocatori e l'hardware.
| Impostazione | Cosa controlla | Errore comune |
|---|---|---|
| Distanza di visualizzazione | Quanti chunk vengono inviati a ciascun client | Lasciata al valore predefinito troppo alto per il numero di giocatori |
| Distanza di simulazione | Quanto lontano simulano mobs, blocchi e redstone | Impostata uguale alla distanza di visualizzazione quando non è necessario |
La distanza di simulazione è solitamente quella da ridurre per prima. I giocatori non necessitano di mob e redstone simulati tanto quanto hanno bisogno che i chunk vengano renderizzati, e abbassare questo valore recupera tempo di tick reale con un impatto molto minore su come si percepisce il gioco.
Profila prima di indovinare
Indovinare la causa del lag spreca tempo. Un profiler come spark cattura esattamente dove viene impiegato il tempo di tick del server, che si tratti di un plugin specifico, generazione del mondo, elaborazione di entità o qualcos'altro, invece di te che modifichi le impostazioni a caso sperando.
Installa Carta o Porpora
Migra prima da vanilla o da Spigot di base. Questo sblocca tutte le ottimizzazioni sottostanti.
Applica i flag di Aikar al tuo script di avvio
Copia l'insieme di flag documentato nel comando di avvio del tuo server e riavvia. Si tratta di una modifica una tantum con benefici continui.
Pre-genera il tuo mondo con Chunky
Esegui questa operazione durante le ore di minor traffico, in modo che i giocatori che esplorano non attivino mai la generazione di chunk in tempo reale in seguito.
Imposta deliberatamente la distanza di visualizzazione e la distanza di simulazione
Adattali al numero effettivo di giocatori e all'hardware, piuttosto che lasciare le impostazioni predefinite della piattaforma.
Profilo con scintilla sotto carico reale
Cattura un report durante le ore di punta e risolvi ciò a cui effettivamente indica, invece di indovinare.
Le prestazioni lato server non raccontano tutta la storia
Mantenere un TPS stabile è la metà dell'esperienza. Ogni giocatore continua a renderizzare quel server stabile sulla propria macchina, e un server solido non serve a nulla per chi ha un client che soffre a causa del rendering, della memoria o di un pacchetto shader non compatibile. Se gestisci una rete di BedWars o SkyWars e hai già svolto il lavoro di cui sopra, l'altra metà di un'esperienza fluida per i tuoi giocatori è ciò che accade sul loro dispositivo. È proprio questo vuoto che Terminus è progettato a colmare, ottimizzando le prestazioni del client per corrispondere al lavoro che hai già svolto sul server.
FAQ
No. Le mod del client modificano ciò che accade sulla macchina del giocatore. Il lag del server risiede nel ciclo di tick del server, e solo le modifiche lato server, software, flag, plugin, impostazioni del mondo, lo raggiungono.
Software server. Passare da Spigot vanilla o non ottimizzato a Paper o Purpur sblocca il lavoro asincrono e multithreading su cui si basano molte altre build di ottimizzazione.
Sì, soprattutto per quanto riguarda il garbage collector di Minecraft, che le impostazioni predefinite vanilla gestiscono male sotto carico reale. Non risolveranno un server sinceramente sottodimensionato, ma con hardware adeguato, attenuano notevolmente i blocchi legati al GC.
Verifica il TPS del server con un comando come /tps o un plugin come spark. Se il TPS si mantiene intorno a 20 e continui a percepire scatti, il problema è probabilmente il tuo client o la tua connessione, non il server.
Prendi Terminus
Tuned client performance to match the server work you already did.