TPS te laag? Zo verbetert u de Minecraft-serverperformance

Twintig TPS is het doel. Alles eronder voelt u: blokken die vertraagd breken, mobs die haperen, redstone die niet betrouwbaar werkt. Hieronder de stappen die de meeste impact hebben, in volgorde. Meet voor en na elke wijziging met /spark tps.

Stap 1: meet eerst, gok niet

Open de console en typ /spark profiler start. Speel vijf minuten normaal. Typ /spark profiler stop. Spark genereert een link naar een overzicht dat precies laat zien waar de tick-tijd naartoe gaat. Zonder deze meting verandert u instellingen in het donker.

De drie meest voorkomende boosdoeners: chunk-generatie (spelers die nieuw terrein verkennen), entities (mobs, items, armor stands) en slecht geschreven plugins.

Stap 2: chunks pre-genereren

Chunk-generatie is het zwaarste dat een Minecraft-server doet. Elke keer dat een speler nieuw terrein betreedt, moet de server dat terrein berekenen. Met de plugin Chunky genereert u de kaart vooraf:

/chunky radius 5000
/chunky start

Dit genereert een cirkel van 5000 blokken rond de spawn. Doe dit op een rustig moment; het kost tijd maar voorkomt lag tijdens het spelen. Stel daarna een wereldgrens in zodat spelers niet voorbij het gegenereerde gebied komen.

Stap 3: view en simulation distance verlagen

Open server.properties:

  • view-distance=7 (standaard 10; voor survival is 6 tot 8 prima)
  • simulation-distance=4 (standaard 10; dit bepaalt tot hoe ver mobs en redstone actief zijn)

Het verschil is groot: view-distance 10 laadt vier keer zo veel chunks als view-distance 5. Simulation distance 4 in plaats van 10 betekent dat entities buiten vier chunks niet meer tick-tijd kosten.

Stap 4: entity-limieten instellen

In bukkit.yml onder spawn-limits:

  • monsters: 50 (standaard 70)
  • animals: 10 (standaard 10)
  • water-animals: 3 (standaard 5)
  • ambient: 1 (standaard 15; vleermuizen kosten TPS en doen niets)

In paper-world-defaults.yml vindt u despawn-ranges en entity-per-chunk-save-limit. Verlaag de opslaaglimiet voor item frames en armor stands als uw server daar veel van heeft.

Stap 5: Aikar's JVM-flags

De standaard JVM-instellingen zijn niet optimaal voor Minecraft. Aikar's flags tunen de garbage collector zodat de server minder pauzeert voor geheugenopruiming. In het gamepanel zet u deze bij de startup-instellingen. Voor servers tot 12 GB:

-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1

Stap 6: plugins controleren

Spark laat per plugin zien hoeveel tick-tijd die gebruikt. Een plugin boven de 5 ms per tick is verdacht. Verwijder of vervang plugins die onevenredig veel tijd kosten. Veelgebruikte boosdoeners: clearlag (ironisch genoeg), oude hologram-plugins en slecht geschreven minigame-plugins.

Helpt meer RAM tegen lage TPS?

Alleen als de server actief geheugen tekortkomt (OutOfMemory in de logboeken). Meestal is TPS een CPU-probleem, geen geheugenproblemen. 4 GB RAM met goede instellingen presteert beter dan 8 GB met standaardinstellingen.

Wat is het verschil tussen TPS en MSPT?

TPS is het aantal ticks per seconde (doel: 20). MSPT is de tijd in milliseconden per tick (doel: onder 50). Bij MSPT boven de 50 kan de server niet meer 20 ticks per seconde halen en zakt de TPS. Spark toont beide.

Moet ik Paper gebruiken voor goede TPS?

Niet verplicht, maar sterk aanbevolen. Paper heeft tientallen ingebouwde optimalisaties die Vanilla en Spigot niet hebben. Het verschil is op dezelfde hardware meetbaar: 5 tot 30 procent lagere MSPT, afhankelijk van de server.

Wilt u direct meten? /spark tps werkt op elke Paper-server bij HostValues. Bekijk de Minecraft-pakketten.


Komt u er niet uit? Open een support ticket, ons team helpt u graag verder.

Terug naar de blog