
Folia: Regionaal multithreading transformeert je server
Folia (PaperMC/Folia)
Fork van Paper die regionaal multithreading aan de dedicate server toevoegt.
Als je een groot Minecraft-server runt en de TPS crasht zodra iemand nieuwe chunks verkent of je piekuren bereikt, kan Folia het antwoord zijn waar je naar zocht. Deze Paper-gebaseerde fork ontwerpt volledig opnieuw hoe Minecraft-servers berekeningen afhandelen door de wereld in onafhankelijke regio's in te delen, elk draaiend op zijn eigen thread. In plaats van één haupthread die alles tegelijk moet beheren, stelt Folia je CPU-cores in staat werkelijk parallel werk uit te voeren.
Wat Folia is
Folia is geen mod. Het is geen plugin. Het is een helemaal nieuw ontwerp van de Paper-server dat het concept van een haupthread volledig elimineert. In plaats daarvan worden nabijgelegen chunks in "regio's" ingedeeld, en elke regio voert zijn eigen tick-loop uit op de threadpool. Stel je voor dat je verschillende delen van je wereld hun eigen processor krijgen, in plaats van één thread die alles moet micromanagen.
De architectuur is belangrijk omdat het verandert hoe je server schaalt.
Paper draait miljoen-spelers-servers prima af binnen zijn single-threaded ontwerp, maar eenmaal je op dat volgende schaalniveau komt - honderden spelers verspreid over een enorme wereld - ontstaan knelpunten. Folia probeert niet meer uit één thread te halen. In plaats daarvan verandert het fundamenteel het probleem.
Waarom je dit wilt hebben
Grote, verspreide servers profiteren het meest. Skyblock-netwerken waar spelers zwevende eilanden hebben verspreid over dimensies, massieve overleven-werelden, custom RPG-servers met gedistribueerde dungeons - dit is waar Folia schittert. Als je spelers zich in één spawngebied bevinden, zul je dezelfde prestatiewinsten niet zien. Maar voor een 200+-speler SMP waar mensen verkennen in verschillende kwadranten, is het verschil aanzienlijk.
Ik moet vooraf duidelijk maken: dit is geen drop-in vervanging.
Je plugins moeten herschreven worden voor Folias multithreaded-omgeving. Dat is de echte prijs. Maar als je op het schaal bent waar je dit overweegt, is je plugin-ecosysteem waarschijnlijk toch al custom. Standaard Paper-plugins die geen haupthread aannemen, zullen onmiddellijk onder Folia breken.
De winst is echter echt. Met juiste configuratie kijk je naar werkelijke prestatieverbeteringen die schalen met je CPU-kerntal. Dat is niet haalbaar op standaard Paper.
Installatie en basisinstellingen
Download eerst de laatste build van de PaperMC-downloadpagina. Vanaf 2026 ondersteunt Folia moderne Minecraft-versies (1.20.4 en later). Download het jar-bestand naar je servermap:
<! - gh-code-start - >wget https://api.papermc.io/v2/projects/folia/versions/latest/builds/latest/downloads/folia-latest.jar
mv folia-latest.jar folia.jar<! - gh-code-end - >
Vervolgens moet je de EULA in je eula.txt-bestand accepteren. Start de server eenmaal op om je configuratiebestanden te genereren:
<! - gh-code-start - >java -Xmx30G -Xms30G -jar folia.jar nogui<! - gh-code-end - >
Stop het (het maakt het folia.yml-config aan), dan begint het werkelijke werk: thread-configuratie. Dit is niet alleen "meer threads instellen en klaar". De PaperMC-documentatie raadt aan je wereld vooraf te genereren voordat je naar productie gaat, wat de overhead van chunk-laden aanzienlijk vermindert.
Thread-configuratie: de echte uitdaging
Dit is waar de meeste mensen verward raken. Je folia.yml heeft een `threaded-regions.threads`-instelling. Maximaliseer het niet zomaar. De richtlijn van het project zelf: alloceer threads voor netty IO (ongeveer 4 per 200-300 spelers), chunk-systeem IO-threads (ongeveer 3 per 200-300 spelers), chunk-systeem workers als vooraf gegenereerd (ongeveer 2 per 200-300 spelers), en gebruik vervolgens de resterende cores tot 80% totale allocatie voor tick-threads.
Op een machine met 32 cores voor 500 spelers zou je ruwweg alloceren:
- Netty IO: 8 threads
- Chunk systeem IO: 6 threads
- Chunk systeem workers: 4 threads
- Tick threads: resterende cores tot 80% (ongeveer 10 threads)
Je laat geen 100% allocatie over omdat plugins en onverwachte achtergrondtaken hun eigen threads kunnen spawnen en de server crashen. Het 80%-plafond is een veiligheidsgrens die werkelijk belangrijk is.
Zelfs dan is dit een startpunt. Monitor je werkelijke thread-gebruik onder belasting en pas aan. Het folia.yml-bestand bevat gedetailleerde opmerkingen voor elke optie.
Sleutelfuncties die werken
Regio-isolatie. Elke regio tikt onafhankelijk af op 20 TPS. Een lag-spike in één regio cascadeert niet naar anderen. Als je dungeoonsysteem slecht is geoptimaliseerd, zal het je spawn-gebied niet afslepen.
Juiste thread-schaling. In tegenstelling tot Papers plugin-threadpool-benadering (die nog steeds bottlenecks op tick-kritische operaties), draaien Folias regio's tick-logica parallel. Meer cores vertaalt zich werkelijk in meer tick-verwerking. De schaling is niet lineair, maar het is echt.
Async chunk-laden. Chunk I/O gebeurt buiten de regio-threads. Je krijgt niet de willekeurige bevriezen die single-threaded servers ervaren wanneer opslaggelezen pieken.
Er is ook native ondersteuning voor server-side chunk-optimalisering, vooraf gegenereerde chunk-caching, en configureerbare geheugenlimieten per regio. Eerlijk gezegd, de functie-diepte is indrukwekkend als je bereid bent in de documentatie te graven.
Wat zal breken en hoe ermee om te gaan
De meeste plugins gaan ervan uit dat ze op een haupthread zijn en dat ze wereldstatus veilig kunnen lezen/schrijven zonder synchronisatie. Ze vergissen zich op Folia. Als een plugin iets doet zoals "controleer of blok X steen is, zet het dan op lucht", kan dat racecondition over threads gebeuren op een manier die nooit op Paper zou voorkomen. Verwacht plugin-mislukkingen.
Enkele specifieke punten:
- Teleportatie tussen regio's brengt extra complexiteit met zich mee en kan deadlocks veroorzaken als plugins niet voorzichtig zijn
- Wereldgrenscontroles zijn regio-bewust en kunnen zich anders gedragen dan je verwacht
- Timers en geplande taken moeten regio-veilig zijn om corruptie te voorkomen
- Entiteit-tracking over regiogrenzen vereist plugin-updates
De Folia-docs vermelden incompatibele patronen expliciet. Als je plugins evalueert op compatibiliteit, controleer of ze rechtstreeks tick-logica manipuleren of single-threaded toegang tot chunk-data aannemen.
Wanneer Folia zinvol is
Je hebt een machine met 16+ cores. Je server zal regelmatig 200+ gelijktijdige spelers bereiken. Je spelers zijn geografisch verspreid (niet allemaal bij spawn). Je hebt een aangepaste plugin-infrastructuur of je bent bereid om bestaande plugins over te zetten.
Die vier voorwaarden? Je bent een kandidaat.
Je runt 50 spelers op een VPS met 8 cores? Blijf bij Paper. De winsten zullen de compatibiliteitsbreuk niet rechtvaardigen. Je runt een 100-speler SMP waar iedereen bij spawn hangt? Folia helpt, maar niet zo dramatisch als het zou op een verspreide server.
Maar als je de volgende generatie serieuze multiplayer Minecraft-gemeenschappen bouwt, is Folia waar het prestatieplaafond werkelijk hoger is. De spelers met skins zoals adderall_abuser's, ironmouse's, en andere actieve communityleden op enorme servers verkennen al deze ruimte. Controleer streaming-gemeenschappen en grote overleven-projecten op Modrinth - je zult Folia steeds vaker zien verschijnen.
Alternatieven overwegen
Paper. Nog steeds de gouden standaard voor de meeste servers. Stabiel, goed begrepen, enorm plugin-ecosysteem. Als Folia overkill voelt, kunnen Papers optimalisatiefuncties (async chunk-laden, verminderde entiteit AI-ticks, enz.) volstaan.
Purpur. Een Paper-fork met extra per-speler-optimalisaties. Beter voor servers waar de spelerervaring wild varieert (sommigen AFK, sommigen actief verkenning). Minder architectuurverandering dan Folia, meer gerichte prestatiewinsten.
Fabric Server. Als je mod-ondersteuning nodig hebt (geen plugins), is het Fabric-ecosysteem eigenlijk best solide voor servers nu. Niet multithreaded op dezelfde manier, maar lichtgewicht en snel.
De eerlijke waarheid: Folia is gespecialiseerd. Het is voor een specifiek probleem op een specifieke schaal. Voor iedereen anders is Paper met doordachte configuratie nog steeds de juiste keuze.
<! - gh-polish-start - > <! - gh-polish-end - >

