Installare, ottimizzare e ridurre il lag di un server


Ciao a tutti,
mi ci sono voluti un paio di giorni per capire per filo e per segno come funziona un server Minecraft ed è piuttosto semplice, purtroppo però pochi spiegano bene come ottimizzarlo per ridurre il lag ed utilizzare tutte le risorse hardware del computer, quindi ecco a voi una piccola guida su come essere sicuri di ottenere il massimo dal vostro server.
Io ODIO le video guide: bisogna caricare il video, stare al passo di chi spiega che solitamente è lento come una lumaca, non si può copiare e incollare e cose così. Lo so che per qualcuno può risultare difficile leggere due parole di fila, figuriamoci tre, ma se vi interessa davvero questo argomento dovete leggere tutto il post!
Cominciamo.

Il server
Il server originale di Minecraft non mi piace, non l’ho mai usato e non credo gli si possa fare molto, piuttosto scaricatevi l’ultima release consigliata di bukkit (attualmente la #1060)
Ignorate totalmente le istruzioni che vi dice bukkit su come avviare il server, questo vale per tutte le piattaforme! Su Mac non so che script avete per avviare il server, su Windows avrete un file .bat e su linux uno senza estensione oppure .sh. Fatto sta che ciascuno script deve essere modificato a mano, perché dobbiamo impostare alcuni parametri di Java.

Lo script per avviare bukkit
Lo script su Linux e su Windows riporta ad un certo punto una cosa molto simile a: java -Xincgc -Xmx1024M -jar “%~dp0craftbukkit-0.0.1-snapshot.jar
Su Windows mi sembra ci sia anche la distinzione tra architetture x64 e x86, è più inutile che mai, quindi se siete su Windows dovete modificare entrambi i codici in modo che risultino uguali o se avete dimestichezza eliminate del tutto l’IF.

Il comando di avvio
Su qualsiasi piattaforma siate, fate in modo di avviare il server bukkit con questo comando:

 java -Xmx2048M -Xms2048M -XX:ParallelGCThreads=4 -Xincgc -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+AggressiveOpts -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=16 -XX:TargetSurvivorRatio=90 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -Xnoclassgc -XX:UseSSE=3 -XX:PermSize=128m -XX:LargePageSizeInBytes=4m -jar craftbukkit-0.0.1-SNAPSHOT.jar

In sostanza ottimizziamo il garbage collection di Java e gli diciamo quanta memoria utilizzare e quanti processori.
Ecco le parti da modificare:
-Xmx2048M gli diciamo che al massimo può prendere 2GB di RAM, modificate questo valore con la RAM disponibile che avete, contando ovviamente che un po’ dovete lasciarla al sistema operativo e per altre operazioni
-Xms2048M gli diciamo che deve riservarsi almeno questa quantità di RAM, sempre. E’ buona norma che il valore sia identico al valore di RAM massima perché altrimenti potreste perdere prestazioni per ridimensionare ogni volta la quantità di RAM necessaria da allocare
-XX:ParallelGCThreads=4 ho messo questo perché il mio processore è un dualcore, se avete un processore ad un solo core mettete 2, se avete un quadcore mettete 8 e così via

Soprattutto quest’ultima opzione è importantissima!!! Se non impostate questo parametro il server verrà eseguito sempre e solo con un core, nonostante magari avete un buon processore dual core o quadcore! Avrete un grandissimo miglioramento di prestazioni utilizzando tutti i core a vostra disposizione, prima di impostare questa opzione il mio server senza nessuno collegato si prendeva il 70% di un core ed ovviamente appena entrava qualcuno arrivava subito al 100% lasciando il secondo core completamente inutilizzato. Ora invece con il server in idle che utilizza entrambi i core il carico dell’intero processore è sceso al 7% insieme al consumo di RAM.
Una bella differenza che anche i giocatori hanno notato.

I plugin
Massimo 30 file jar, evitate le connessioni MySQL, evitate anche i plugin che creano le mappe JPG del server da pubblicare online oppure fateli lavorare di notte quando non c’è nessuno collegato.

Hamachi
Non capisco perché tutti usate Hamachi, introducete nel giro solamente una cosa in più totalmente inutile che potrebbe rallentare/bloccare in caso di malfunzionamenti tutto il server. Se il problema è solo il port forwarding del router e l’apertura delle porte del firewall, non è difficile, fatelo!

Ultime raccomandazioni
Se volete un server decente riservate un intero computer per esso, e soprattutto non mettetevi a scaricare con eMule o Bittorrent con la stessa connessione perché è ovvio che vi prendete tutta la banda e nessuno riesce a giocare…
Infine, consiglio vivamente di utilizzare Linux per il server, è leggerissimo e può trasformarvi il vostro vecchio Pentium 4 in un buon server senza lag. Inoltre avete anche la possibilità di mettere la mappa direttamente sulla RAM piuttosto che sull’hard-disk, in questo modo la velocità di lettura e scrittura aumenta a dismisura.

Fonte: Minecraftitalia.net





Ti è piaciuto l'articolo? Allora segui Minecraft ITALIA su Facebook e Twitter per rimanere sempre aggiornato sulle ultime novità di questo gioco.