Timings en Spark

Je server heeft lage TPS, maar je weet niet waardoor het komt. Zijn het je plugins? Te veel mobs? Een specifieke wereld? Om daar achter te komen heb je een profiler nodig. De beste tool hiervoor is Spark. In dit artikel leer je hoe je Spark installeert, een profiler-rapport maakt en de resultaten leest om precies te achterhalen wat je server vertraagt.

Wat is Spark?

Spark is een gratis en open-source performance profiling plugin voor Minecraft servers. Het is ontwikkeld door Lucko (dezelfde ontwikkelaar achter LuckPerms) en wordt ondersteund door het PaperMC-team. Spark is beschikbaar voor Spigot, Paper, Purpur, Fabric, Forge, BungeeCord en Velocity.

Met Spark kun je:

  • Zien welke plugins of taken de meeste servertijd verbruiken
  • CPU-gebruik per onderdeel analyseren
  • Geheugengebruik in detail bekijken
  • TPS en MSPT (milliseconden per tick) realtime monitoren
  • Lag spikes opsporen en identificeren

Spark genereert een overzichtelijk webrapport dat je kunt delen met anderen, bijvoorbeeld als je hulp nodig hebt van het HytaleNode supportteam.

Hoe installeer je Spark?

Het installeren van Spark is eenvoudig via het HytaleNode paneel:

  1. Download Spark van de officiele website: spark.lucko.me. Kies de versie die past bij je serverplatform (Paper, Purpur, etc.).
  2. Ga naar mijn.hytalenode.nl en open je server.
  3. Klik op de Bestanden tab.
  4. Navigeer naar de plugins map.
  5. Upload het gedownloade spark.jar bestand naar deze map via de uploadknop.
  6. Herstart je server via de Console tab.
  7. Spark is nu actief en klaar voor gebruik.

Opmerking: Sommige serverplatforms zoals Paper (nieuwere versies) en Purpur hebben Spark al ingebouwd. In dat geval hoef je niets te installeren en kun je direct de Spark-commando's gebruiken.

Spark profiler starten

Om te analyseren wat je server vertraagt, start je een profiler-sessie. Dit kan via de server console op het HytaleNode paneel of in-game als operator:

Profiler starten:

/spark profiler start

Laat de profiler minstens 5 tot 10 minuten draaien terwijl de server normaal wordt gebruikt. Dit geeft Spark genoeg data om een betrouwbaar beeld te geven. Probeer de profiler te starten op een moment dat je server lag ervaart - dan vang je precies het probleem.

Profiler stoppen en rapport genereren:

/spark profiler stop

Na het stoppen genereert Spark automatisch een link naar een webrapport. Deze link kun je openen in je browser om de resultaten te bekijken.

Andere handige Spark commando's:

  • /spark tps - Toont huidige TPS, MSPT en tick-duur statistieken.
  • /spark health - Geeft een samenvatting van CPU, geheugen en TPS.
  • /spark gc - Toont informatie over garbage collection activiteit.
  • /spark heapdump - Maakt een snapshot van het geheugengebruik (handig bij geheugenlekken).

Het Spark rapport lezen

Het Spark webrapport kan er in eerste instantie overweldigend uitzien, maar met een beetje uitleg kun je er snel mee uit de voeten. Hier zijn de belangrijkste onderdelen:

1. Overzichtspagina

Bovenaan het rapport zie je een samenvatting met TPS, MSPT, CPU-gebruik en geheugengebruik. Kijk hier eerst of je TPS daadwerkelijk onder de 20 zat tijdens het profilen.

2. De Call Tree (aanroepboom)

Dit is het hart van het rapport. Hier zie je een boomstructuur van alle taken die de server uitvoert, gerangschikt op hoeveel tijd ze kosten. De taken bovenaan kosten de meeste tijd en zijn dus de waarschijnlijkste oorzaken van lag.

Let op deze categorieen:

  • Minecraft internals - Dit zijn taken van de server zelf (entity ticking, chunk loading, etc.). Als deze veel tijd kosten, moet je je server-instellingen optimaliseren.
  • Plugin-namen - Als een specifieke plugin veel tijd kost, is dat een duidelijk signaal. Overweeg de plugin te vervangen, te configureren of te verwijderen.
  • Entity ticking - Als entity-gerelateerde taken veel tijd kosten, heb je waarschijnlijk te veel entities in je wereld.

3. De Thread View

Hier kun je zien hoe de belasting over verschillende threads is verdeeld. De "Server thread" is de belangrijkste - Minecraft verwerkt het meeste op een enkele thread. Als deze overbelast is, heb je een TPS-probleem.

Actie ondernemen op basis van het rapport

Nadat je het rapport hebt gelezen, kun je gericht actie ondernemen:

  • Een plugin kost veel tijd? - Controleer of er een lichtere alternatief is, update de plugin naar de nieuwste versie, of pas de configuratie aan om zware functies uit te schakelen.
  • Entity ticking is de boosdoener? - Verlaag mob spawn-limieten in bukkit.yml, installeer een mob-stacker plugin, of gebruik een plugin als ClearLagg om entities periodiek op te ruimen.
  • Chunk loading kost veel tijd? - Verlaag je view-distance en simulation-distance in server.properties. Overweeg ook chunk pre-generatie met Chunky.
  • Garbage collection pauzes? - Controleer of je Aikars Flags correct hebt ingesteld (zie het vorige artikel). Overweeg een groter plan als je server consistent te weinig RAM heeft.
  • Hoge CPU-belasting op de server thread? - Overweeg een upgrade naar een HytaleNode Premium server met de AMD Ryzen 9800X3D (5.2 GHz) voor maximale single-thread performance.

Tip: Bewaar je Spark-rapporten. Door meerdere rapporten over tijd te vergelijken kun je zien of je optimalisaties effect hebben gehad en of er nieuwe problemen zijn ontstaan.

Timings en Spark | Kennisbank | HytaleNode