CrestVPS

hosting server minecraft

Hosting per server di gioco

Il tick rate è un problema single-thread. Tutto il resto è rumore.

Cosa implementeremmo

76,23 €/mese

108,90 €30% annuale

Il loop di un server di gioco gira su un core, e il numero che determina se i tuoi giocatori si lamentano è la velocità di quel core e la sua capacità di girare senza interruzioni. Selezioniamo il silicio con clock più alto sul mercato, lo pinniamo, spostiamo la manutenzione del kernel fuori da esso con isolcpus e modalità tickless, poi mettiamo un filtraggio a livello di gioco davanti, così un attacco alla tua community non diventa un ticket di supporto per te.

Perché questa configurazione

NITRO esegue Zen 5 a 5,9 GHz con core pinnati e isolati, mantenendo il jitter del frame-time sotto un millisecondo anche con server pieno. Il profilo di filtraggio L7 riconosce i pattern di traffico di Source-engine, FiveM, Minecraft e TeamSpeak, quindi elimina la spazzatura senza eliminare i tuoi giocatori.

Cosa implementeremmo

PlanNITRO N2
vCPU8 (dedicated)
RAM32 GB
Storage480 GB
ImmagineDebian 13 Trixie

Dimensionamento

Dimensiona in base al headroom single-thread, non al numero di core. Un loop di gioco autoritativo gira su un core. Uno sparatutto a 128 tick con 12 slot richiede un core NITRO a clock pieno e 4 GB. Rust o grandi server Source oltre 100 giocatori necessitano di headroom di due core, perché il loop ha picchi sul churn di entità. Minecraft con 40 giocatori e uno stack di plugin: 4 core, 12 GB, la maggior parte come heap. Mantieni il carico a regime sotto il 60%.

Aritmetica del budget dei tick

Un tick è una scadenza rigida. A 64 tick hai 15,6 ms per frame; a 128 tick, 7,8 ms. Questo budget copre fisica, registrazione dei colpi, IA e serializzazione di rete per ogni giocatore connesso. Se lo superi una volta, il server salta un tick. I giocatori lo percepiscono come rubber-banding e colpi persi. Profila il tempo di frame p99, mai la media. La media rimane piatta mentre l'inizio del round, il cambio mappa e la generazione di molte entità superano il budget. Dimensiona in modo che il tempo di frame a regime sia sotto la metà del budget. Gli spike cadranno comunque al suo interno.

Cosa fa realmente il filtraggio L7 dei giochi

Lo scrubbing volumetrico impedisce che il tubo si riempia. Non fa nulla contro un flood di query composto da pacchetti validi. I motori Source rispondono a A2S_INFO da qualsiasi indirizzo, quindi un attaccante invia piccole query e il tuo loop di tick paga per le risposte, o le riflette su qualcun altro. Filtrare a livello 7 significa che lo scrubber parla il protocollo: challenge-response sulle query, limiti di rate per sorgente sulle handshake, pacchetti malformati scartati prima che raggiungano il processo di gioco. I 15 Tbps di capacità inline sono il pavimento. La consapevolezza del protocollo è la parte che mantiene il loop nei tempi.

Cosa va storto

  • Acquistare vCPU burst o condivise per un loop di tick. Il carico sostenuto abbassa il clock di boost, il p99 del frame-time raddoppia, e i giocatori lo sentono prima che i tuoi grafici lo mostrino. Pinna i core su NITRO.
  • Eseguire il server di gioco e il backend MySQL o Redis sugli stessi core. Uno stall di fsync o una pausa di GC finisce dentro la finestra di tick e il server perde frame sotto carico.
  • Dimensionare sulla media del frame-time. La media rimane piatta mentre l'inizio del round, la rotazione della mappa e gli spawn di massa di entità superano il budget. Provisiona contro il p99, misurato durante questi eventi, non durante l'idle.

Configura la macchina

  • Scheduling CPUPinned + isolcpus + tickless · 18 €
  • Protezione DDoSGame-layer L7 filtering · 24 €
  • Tutto il restoSecond-resolution metrics + alerting · 5 €