Betaal voor vierentwintig maanden en bespaar 17% of meerKies bij elk abonnement de termijn van vierentwintig maanden bij het bestellen
Naar de hoofdinhoud

Lag verminderen op je Minecraft server

Lag heeft drie verschillende oorzaken die er vanaf de stoel van een speler allemaal hetzelfde uitzien. Deze pagina loopt ze langs in de volgorde die het probleem het snelst vindt, en elk getal erin is uitgerekend uit de instellingen die ons eigen paneel echt aanbiedt.

TPS begrijpen

TPS staat voor ticks per second, en het is de hartslag van de server. Alles wat de wereld doet, mobbeweging, blokupdates, redstone, groei, gebeurt één keer per tick, en het doel is 20 daarvan per seconde. Dat geeft elke tick 50 milliseconden om af te ronden. Loopt dat uit, dan begint de volgende tick te laat, zakt de TPS, en vertraagt de hele wereld samen: daarom maakt lag ovens langzamer smelten in plaats van dat het spel er hakkelig uitziet. Typ /tps in de console om het te zien. Paper geeft drie gemiddeldes, over één, vijf en vijftien minuten, en het gemiddelde van één minuut is degene die antwoord geeft op de vraag of het nu slecht is.

Wat een tickrate in milliseconden betekent, en hoe dat er in de wereld uitziet.
TPSEén tick duurtHoe het aanvoelt
20 TPS50 msNormaal. Niets om te repareren.
18 TPS55.6 msNauwelijks zichtbaar. Redstone timing begint te verschuiven.
15 TPS66.7 msMobs haperen, hoppers lopen achter, farms produceren minder.
10 TPS100 msHalve snelheid. Ovens, groei en daglicht doen er allemaal twee keer zo lang over.
5 TPS200 msOnspeelbaar. Blokken verschijnen terug nadat je ze hebt gesloopt.

Drie soorten lag

Drie verschillende problemen worden allemaal lag genoemd, en maar één daarvan is iets waar jij iets aan kunt doen. Ze uit elkaar houden bespaart je de moeite om een server te optimaliseren die nooit het trage deel was.

Drie problemen die allemaal lag heten, en welke daarvan die van jou is.
SoortWaar het gebeurtWat je eraan kunt doen
ServerkantOp de machine. Dit is wat TPS meet.Al het andere op deze pagina. Entiteiten, chunks laden, plugins en redstone landen hier allemaal.
ClientkantOp de eigen computer van de speler. Uit zich als lage FPS en gehaper, niet als langzame ovens.Niet rechtstreeks, maar een lagere kijkafstand stuurt minder chunks en verlicht ook hun belasting.
Netwerk, oftewel pingTussen de twee in. Afstand en routering, geen verwerking.Kies een regio dicht bij je spelers. Geen hoeveelheid CPU repareert een oceaan.

Genereer je chunks vooraf

Terrein genereren is het duurste dat een server doet. Biomes, grotten, structuren, ertsen en licht worden allemaal uitgerekend de eerste keer dat iemand die kant op loopt, en vier spelers die op paarden in vier richtingen wegrijden kunnen een gezonde server op hun eentje naar een TPS van één cijfer duwen. Doe je het van tevoren, terwijl er niemand online is, dan verschuif je die kosten naar een moment waarop het er niet toe doet.

  1. Installeer Chunky

    Het is een gewone plugin jar in de plugins map, en hij werkt op elk van onze Bukkit gebaseerde serversoftware.

  2. Zet de radius die je echt wilt

    Kies hetzelfde getal als je world border, in blokken. Ver voorbij de grens genereren is uren CPU tijd voor terrein waar nooit iemand op zal staan.

    /chunky radius 5000
  3. Start hem op een lege server

    Het genereren zelf is zwaar, dus draai het 's nachts of voordat je het adres deelt. Hij gaat verder als hij wordt onderbroken.

    /chunky start

Verlaag je kijkafstand en simulatieafstand

Kijkafstand is een radius, dus de kosten ervan stijgen kwadratisch en niet lineair. Ons eigen paneel gaat van 2 tot 32, en over dat hele bereik gaat één speler van 25 chunks naar 4.225. Vermenigvuldig dat met het aantal mensen online en je ziet meteen waarom dit de eerste knop is om aan te draaien. Van 10 naar 8 gaan kost bijna niemand iets dat hij merkt, en scheelt de server ongeveer een derde van de chunks.

Een radius, in het kwadraat: wat één speler kost bij elke instelling, tegenover een kijkafstand van 10.
KijkafstandChunks die één speler vasthoudtTegenover 10
2 chunksDe laagste die ons paneel toelaat256%
4 chunks8118%
6 chunks16938%
8 chunks28966%
10 chunks441100%
12 chunks625142%
16 chunks1.089247%
32 chunksDe hoogste die ons paneel toelaat4.225958%

Simulatieafstand is degene die loont. Kijkafstand bepaalt wat een speler kan zien; simulatieafstand bepaalt hoe ver de wereld blijft doordraaien, en dat is dus wat er echt aan ticks kost. Hem een paar chunks lager zetten dan de kijkafstand is meestal het juiste antwoord. Dit zijn de 5 prestatie instellingen die ons eigen paneel laat zien, met de tekst die wij ernaast zetten.

De prestatiegroep van ons eigen instellingenscherm, rechtstreeks eruit gelezen.
InstellingBereikWat hij doet
Kijkafstand (chunks)view-distance2 tot 32Hoe ver spelers kunnen zien. Lager is lichter voor CPU en geheugen.
Simulatieafstand (chunks)simulation-distance2 tot 32Hoe ver de wereld blijft doortikken. De ene instelling met de meeste invloed op de snelheid.
Entiteitbereik (%)entity-broadcast-range-percentage10 tot 500Hoe ver entiteiten naar clients worden gestuurd. Lager verlaagt de netwerkbelasting.
Watchdog (ms)max-tick-time1000 tot 600000Hoe lang één tick mag duren voordat de server zichzelf als vastgelopen beschouwt. Onder 60000 kan de server zichzelf herstarten tijdens zware lag.
Synchrone chunk writessync-chunk-writesAan of uitDit uitzetten is meestal sneller op gedeelde opslag.

Ruim entiteiten op

Elke mob, elk gevallen item, elk item frame, elke armour stand en elke minecart is een entiteit, en de server loopt elke tick de hele lijst langs. Vijfhonderd kippen opeengepakt in tien blokken kosten meer dan vijftig spelers die rondlopen. Paper kan dit uitdunnen zonder dat iemand het merkt: activation ranges en tick rates in paper-world-defaults.yml laten verre entiteiten minder vaak tikken, en spawn limits in bukkit.yml begrenzen hoeveel er tegelijk kunnen bestaan. Item frames en armour stands in een bouwwerk zijn de stiekeme boosdoeners, want niets doodt ze en ze bewegen nooit.

Optimaliseer redstone

Een redstone update cascadeert: één verandering vuurt blokupdates af door alles wat eraan vastzit, en een snelle klok doet dat honderden keren per seconde. Paper levert een alternatieve redstone implementatie die aantoonbaar goedkoper is voor grote circuits, en die is het waard om aan te zetten voordat je ontwerpen gaat verbieden. Hoppers verdienen hun eigen regel: elke hopper controleert elke tick op items, of er nu iets beweegt of niet, dus een sorteersysteem met tweehonderd hoppers draait de hele dag tegen volle prijs.

Gebruik Spark om de bottleneck te vinden

Alles hierboven is gokken totdat je het meet. Spark is een profiler die je vertelt waar de ticks naartoe gingen: entiteiten die tikken, chunks die laden, de event handler van één plugin, of de garbage collector. Start hem terwijl de server echt moeite heeft, laat hem een paar minuten draaien, stop hem, en hij geeft je een link met de uitsplitsing. Paper 1.21 en hoger levert hem al kant en klaar mee, dus op de meeste van onze servers hoef je vooraf niets te installeren.

/spark profiler start /spark profiler stop

Lag door plugins

Het aantal plugins is niet het getal dat ertoe doet. Vijftien goed gekozen plugins verslaan veertig waarvan de helft overlapt, maar één plugin die chunks scant op de main thread verslaat ze allemaal qua schade. Zet een Spark profiel één plugin bovenaan, zoek dan eerst naar een nieuwere versie, dan naar een configoptie die het dure deel uitzet, en dan naar iets anders dat hetzelfde werk doet. De lijst twee keer per jaar nalopen en weghalen wat niemand gebruikt kost een uur en verdient zichzelf terug.

Wanneer je moet opschalen

Heb je je chunks vooraf gegenereerd, de simulatieafstand verlaagd, de entiteiten uitgedund en met Spark geprofileerd, en houdt het gemiddelde van één minuut nog steeds geen 20 vast, dan is de machine de grens en niet de instellingen. De hele dag boven de tachtig procent geheugen zitten, of CPU pieken tijdens gewoon spelen, is het signaal. Al onze 7 pakketten laten zien wat ze je geven, en onze RAM gids laat zien welke daarvan bij welk soort server past.

Wat elk pakket je geeft, rechtstreeks uit de prijslijst.
PakketvCPUGeheugenOpslag
Mini2 vCPU4 GBA cobblestone block, the icon of the Mini Minecraft server plan40 GB NVMe
Starter4 vCPU8 GBA block of coal, the icon of the Starter Minecraft server plan75 GB NVMe
Standard6 vCPU12 GBA block of iron, the icon of the Standard Minecraft server plan100 GB NVMe
Premium8 vCPU24 GBA block of gold, the icon of the Premium Minecraft server plan200 GB NVMe
Ultimate12 vCPU48 GBA block of diamond, the icon of the Ultimate Minecraft server plan250 GB NVMe
Enterprise16 vCPU64 GBA block of emerald, the icon of the Enterprise Minecraft server plan300 GB NVMe
Dedicated18 vCPU96 GBA block of netherite, the icon of the Dedicated Minecraft server plan350 GB NVMe

Wat er bij elk pakket zit, op elke laag, staat op de volledige lijst met functies.

Vragen die mensen stellen als de server hapert

Lost meer RAM een lage TPS op?

Alleen als geheugen het probleem was. TPS is een CPU maat: een server kan op de helft van zijn geheugen zitten en toch ticks missen omdat één plugin te veel werk doet per tick. Profileer eerst, en beslis dan pas wat je koopt.

Welke kijkafstand moet ik gebruiken?

Voor de meeste servers iets tussen 6 en 10, met de simulatieafstand een paar chunks lager. De tabel hierboven laat zien wat elke stap kost, zodat je een getal kunt kiezen in plaats van er een over te typen.

Bij hoeveel spelers begint een server te laggen?

Zo'n getal bestaat niet. Twintig spelers verspreid over een verkende wereld zijn goedkoper dan vijf die in één chunk aan redstone bouwen. Wat de spelers doen bepaalt het, niet hoeveel het er zijn.

Helpen geplande herstarts?

Ze plakken een pleister op een lek in plaats van hem te repareren, maar ze werken wel: een herstart per nacht ruimt opgehoopte entiteiten op en geeft geheugen terug dat de garbage collector nooit meer losliet. De moeite waard om te hebben, niet om op te vertrouwen.

Is Spark veilig om op een live server te draaien?

Ja, daar is hij voor gemaakt. Hij bemonstert in plaats van elk punt te meten, dus de overhead is klein, en je moet hem draaien tijdens echte lag wil het rapport iets betekenen.

Pakketten met ruimte om in te groeien

Bekijk alle 21 pakketten in drie editiesBeantwoord vier vragen en krijg de maat

De chunktellingen op deze pagina zijn het kwadraat van twee keer de kijkafstand plus één, uitgerekend over het hele bereik dat ons instellingenscherm toelaat, en de instellingentabel is dat scherm: de labels, de grenzen en de hulptekst worden eruit gelezen op het moment dat de pagina wordt gebouwd.