/
mc-node.net →
Minecraft

Hoe los ik serverlag op met de Spark-profiler?

Bijgewerkt op 31/08/20264 min. leestijd
In dit artikel
  1. Eerst begrijpen: TPS, MSPT en 'Can't keep up'
  2. Stap 1: Installeer Spark
  3. Stap 2: Profileer tijdens de lag
  4. Stap 3: Lees het rapport
  5. Veelvoorkomende oorzaken en hun fix
  6. Verder optimaliseren

Je server voelt traag: blokken komen terug nadat je ze kapot slaat, mobs bevriezen, commando's reageren laat en in de console verschijnt Can't keep up! Is the server overloaded?. Gokken welke farm of plugin de boosdoener is hoeft niet — met de gratis Spark-profiler meet je precies waar elke tick zijn tijd aan verliest. In deze gids installeer je Spark, maak je een profiel tijdens de lag en vertaal je het rapport naar een concrete fix.

Eerst begrijpen: TPS, MSPT en 'Can't keep up'

Een Minecraft-server draait op 20 ticks per seconde (TPS). Elke tick werkt de server de hele wereld bij en daarvoor heeft hij maximaal 50 milliseconden. MSPT (milliseconds per tick) is hoelang een tick werkelijk duurt. Blijft de MSPT onder de 50, dan haal je vlot 20 TPS; komt hij erboven, dan zakt de TPS en vertraagt letterlijk alles op de server.

De melding Can't keep up! Is the server overloaded? Running 2000ms or 40 ticks behind betekent precies dat: ticks duurden te lang, de server loopt achter en slaat ticks over om bij te benen. Eén keer tijdens het opstarten is onschuldig; keert de melding tijdens het spelen terug, dan heb je echte server-lag.

Controleer eerst of het probleem wel bij de server ligt. Lage FPS of haperend beeld (zeker met shaders) is client-lag; rubberbanding bij een hoge ping is verbindingslag. Typ /spark tps: staat daar strak 20 TPS met een lage MSPT, zoek het dan bij de client of het netwerk.

Stap 1: Installeer Spark

  1. Draai je Paper of Purpur 1.21 of nieuwer, dan is Spark al ingebouwd. Typ spark tps in het tabblad Console van het MC-Node paneel; krijg je antwoord, ga dan direct door naar stap 2.
  2. Anders download je Spark via spark.lucko.me/download. Kies de Bukkit-versie voor Paper/Spigot, of de Fabric/Forge/NeoForge-versie voor een modded server.
  3. Open het tabblad Files in het paneel en upload de jar naar de map plugins (bij een modded server: mods).
  4. Herstart de server via het tabblad Console en controleer met spark tps dat het commando werkt.

Stap 2: Profileer tijdens de lag

De grootste valkuil: profilen op een lege of net herstarte server. Zonder spelers draaien de farms, hoppers en chunks die de lag veroorzaken niet mee, en laat het rapport dus niets zien. Start de profiler op het moment dat de lag echt optreedt, met spelers online.

  1. Wacht tot de lag zich voordoet, of laat spelers de situatie nabootsen (bijvoorbeeld bij de verdachte farm).
  2. Typ in de console: spark profiler start --timeout 300. De profiler meet 5 minuten en stopt vanzelf. Zonder --timeout stop je zelf met spark profiler stop.
  3. Laat iedereen gewoon doorspelen; de meting zelf kost nauwelijks prestaties.
  4. Na afloop print de console een link naar spark.lucko.me. Open die in je browser.

Stap 3: Lees het rapport

  1. Bovenin zie je de TPS en MSPT tijdens de meting — zo bevestig je dat je de lag echt te pakken had.
  2. Open de boomstructuur onder de server-thread en klap telkens de regel met het hoogste percentage open. Zo daal je af naar de taak die de meeste tick-tijd opslokt.
  3. Herken de patronen: veel tijd in entityTick of mob-AI wijst op te veel entities; HopperBlockEntity op hopperlijnen; chunk generation of ServerChunkCache op chunk-loading; en een pakketnaam als com.voorbeeld.pluginnaam wijst die ene plugin als boosdoener aan.

Veelvoorkomende oorzaken en hun fix

  • Te veel entities — Meestal mob-farms of rondslingerende items. Zet /gamerule maxEntityCramming 8 (standaard 24), verlaag de spawn-limits in bukkit.yml en de entity-activation-range in spigot.yml, en geef grote farms een aan/uit-schakelaar.
  • Hoppers — Lange hopperlijnen checken elke tick opnieuw. Verhoog in bukkit.yml de waarde ticks-per.hopper-transfer (bijvoorbeeld van 8 naar 16) en zet op Paper in config/paper-world-defaults.yml de optie hopper.cooldown-when-full op true. Vervang extreem lange lijnen door waterstromen met minder hoppers.
  • Chunk-loading en worldgen — Verkennende spelers dwingen de server nieuwe chunks te genereren. Verlaag in server.properties de simulation-distance (bijvoorbeeld naar 6) en eventueel de view-distance, stel een wereldgrens in en pre-genereer de wereld met de plugin Chunky: /chunky radius 3000 gevolgd door /chunky start.
  • Eén plugin bovenaan — Update de plugin eerst, zet zware features (scans, animaties, hologrammen) in de config uit of zoek een lichter alternatief. Testen kan door de jar tijdelijk uit plugins te verplaatsen en te herstarten.
  • 'Can't keep up' alleen bij het opstarten — Onschuldig: de server haalt de opstartpiek in. Alleen actie nodig als de melding tijdens het spelen terugkeert.
  • TPS is 20, maar spelers klagen toch — Dan is het client- of netwerk-lag: verlaag de renderafstand of zet shaders uit aan de clientkant, of onderzoek de ping.

Verder optimaliseren

Werkte je vroeger met /timings? Ons artikel timings maken is verouderd; Spark is de moderne opvolger. Structurele verbeteringen vind je in onze optimalisatiegids, en of te weinig geheugen meespeelt lees je in de RAM-gids. Kom je er niet uit? Open een ticket via onze supportpagina en plak de link van je spark-rapport erbij — dan kijken we mee.