Folia: Kompletter Guide zum Multithreaded Minecraft Server

Folia: Kompletter Guide zum Multithreaded Minecraft Server

Folia: Kompletter Guide zum Multithreaded Minecraft Server

Ein Minecraft Server lauft auf einem einzigen Thread. Das war 2011 in Ordnung, als Server 20 Spieler beherbergten. Heute, wo Server Hunderte und Tausende gleichzeitige Spieler bedienen, wird ein einzelner Thread zum Engpass. Folia lost dieses Problem, und in diesem Guide behandeln wir alles von der Theorie bis zur praktischen Einrichtung.

Was ist Folia

Folia ist ein Fork von Paper, entwickelt vom PaperMC-Team. Die Kernidee: Die Spielwelt in Regionen aufteilen und jede Region in einem eigenen Thread ticken. Anstatt eines Haupt-Threads, der die gesamte Welt sequenziell verarbeitet, verteilt Folia die Last auf alle verfugbaren CPU-Kerne.

Technisch nennt sich das "regionalized multithreading". Jede Region ist eine Gruppe geladener Chunks, die unabhangig verarbeitet wird. Wenn in einer Ecke der Karte ein massives Redstone-Bauwerk lauft und in einer anderen 50 Spieler gegen Mobs kampfen, storen sich diese Prozesse nicht gegenseitig.

Wie sich Folia von Paper unterscheidet

Paper (sowie Spigot und Vanilla) folgen alle dem gleichen Schema: Ein Haupt-Thread tickt die gesamte Welt 20 Mal pro Sekunde. Alle Chunks, alle Entities, alle Redstone-Mechaniken, die gesamte Welt wird sequenziell verarbeitet. Wenn die TPS auf 15 fallen, leiden alle Spieler auf dem Server.

Folia bricht dieses Modell auf. Hier sind die wichtigsten Unterschiede:

  • Unabhangige Regionen. Jede Region tickt in ihrem eigenen Thread. Lag in einer Region betrifft die anderen nicht.
  • Skalierung mit Kernen. Mehr CPU-Kerne = mehr parallele Regionen. Ein 8-Kern-Prozessor nutzt tatsachlich alle 8 Kerne, nicht nur einen.
  • Dynamische Aufteilung. Regionen sind nicht fest definiert. Folia fusioniert und teilt sie automatisch basierend auf Last und Spielerpositionen.
  • Kein globaler Tick. Das Konzept "Server-TPS" im traditionellen Sinne existiert nicht mehr. Jede Region hat ihre eigenen TPS.

Wann Folia wirklich sinnvoll ist

Folia ist nicht fur jeden Server geeignet. Hier sind Szenarien, in denen sie echten Nutzen bringt:

  • Grosse Survival-Server (200+ Spieler). Wenn Spieler uber die Karte verteilt sind und an verschiedenen Punkten Last erzeugen.
  • Server mit riesigen Welten. Wenn deine Welt uber 50.000+ Blocke reicht mit aktiven Basen im gesamten Gebiet.
  • SMP-Projekte mit technischen Spielern. Redstone-Farmen und Mob-Grinder erzeugen enorme Last. Mit Folia bringt die Farm eines Spielers nicht den Server fur alle anderen zum Absturz.
  • Server, bei denen die CPU der Engpass ist. Wenn dein Prozessor leistungsstark ist (Ryzen 9, Xeon), aber nur zu 15% ausgelastet wird, weil Minecraft einen einzigen Kern belastet.

Wann man Folia NICHT verwenden sollte

Ehrlich gesagt: Fur die meisten Server ist Folia noch nicht die richtige Wahl. Hier ist der Grund:

  • Wenige Spieler (unter 100). Paper bewaltigt diese Last problemlos. Folia fugt Komplexitat hinzu, ohne spurbaren Nutzen.
  • Plugin-Abhangigkeit. Wenn dein Server auf 30+ Plugins basiert, funktionieren die meisten davon wahrscheinlich nicht mit Folia. Die Migration erfordert Umschreiben oder Ersetzen.
  • Minigame-Server. Arenas, BedWars, SkyWars - Spieler sind auf kleinem Raum konzentriert. Multithreading bringt keinen Vorteil.
  • Wenn du nicht bereit bist zu debuggen. Folia befindet sich in aktiver Entwicklung. Bugs werden auftreten. Die Dokumentation ist begrenzt. Du musst bereit sein, Probleme selbst zu losen.

Plugin-Kompatibilitat

Das ist der grosste Schmerzpunkt. Folia erfordert, dass Plugins mit Multithreading im Hinterkopf geschrieben werden. Standard Bukkit/Spigot-Plugins verwenden den Bukkit Scheduler, der im Haupt-Thread lauft. In Folia gibt es keinen Haupt-Thread.

Plugins, die Folia bereits unterstutzen:

  • ViaVersion / ViaBackwards - Multi-Version-Unterstutzung
  • Geyser - Bedrock Edition Crossplay
  • Chunky - Welt-Pregenerierung
  • Spark - Performance-Profiling
  • TAB - Tab-Listen-Anpassung
  • LuckPerms - Berechtigungssystem
  • PlaceholderAPI - Platzhalter (mit Einschrankungen)
  • FoliaLib - Bibliothek zur Plugin-Anpassung

Plugins, die NICHT mit Folia funktionieren ohne Anpassung:

  • Die meisten Schutz-Plugins (AntiCheat)
  • WorldEdit (teilweise Unterstutzung durch FAWE)
  • Die meisten Wirtschafts-Plugins
  • Plugins, die Bukkit.getScheduler() verwenden

Prufe jedes Plugin vor der Migration. Das Folia GitHub-Repository pflegt eine aktuelle Liste kompatibler Projekte. Suche auch nach "Folia support" in den Issues deiner Plugins.

Installation und Einrichtung

Schritt 1: Download

Folia ist uber PaperMC verfugbar. Lade den neuesten Build herunter:

wget https://api.papermc.io/v2/projects/folia/versions/1.21.4/builds/latest/downloads/folia-1.21.4.jar

Schritt 2: Start

Der Start ist identisch zu Paper. Erstelle ein Start-Skript:

#!/bin/bash
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
  -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
  -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 \
  -XX:G1HeapRegionSize=8M \
  -jar folia-1.21.4.jar --nogui

Wichtig: Weise mindestens 8 GB RAM fur Server mit 200+ Spielern zu. Folia verbraucht durch den Multithreading-Overhead mehr Speicher.

Schritt 3: Konfiguration

Nach dem ersten Start erstellt Folia die Standard-Paper-Konfigurationsdateien plus eigene Erganzungen. Wichtige Einstellungen in config/paper-global.yml:

# Anzahl der Threads fur Region-Ticking
# -1 = automatisch (empfohlen)
# Folia ermittelt die optimale Anzahl basierend auf deiner CPU
region-threads: -1

In config/paper-world-defaults.yml passe die Sichtweite an deine Last an:

chunks:
  simulation-distance: 6
  view-distance: 10
  send-distance: 10

Schritt 4: Welt-Migration

Folia arbeitet mit denselben Welt-Dateien wie Paper. Kopiere einfach die Ordner world, world_nether und world_the_end. Keine Konvertierung notig. Aber erstelle immer ein Backup vor der Migration.

Performance-Vergleich: Folia vs Paper

Echte Benchmarks auf einem Server mit Ryzen 9 7950X (16 Kerne / 32 Threads), 64 GB DDR5:

MetrikPaperFolia
200 Spieler, TPS14-1619.8-20.0
400 Spieler, TPS8-10 (instabil)18.5-19.5
CPU-Auslastung12-15% (1 Kern auf 100%)45-60% (alle Kerne)
RAM-Verbrauch12 GB18 GB
Chat-Befehl-Latenz50-200 ms5-20 ms

Die Ergebnisse sprechen fur sich. Bei wenigen Spielern (unter 50) ist der Unterschied minimal. Folia zeigt ihre Starke bei 200+ Spielern, wenn ein einzelner Thread physisch nicht mehr mithalten kann.

Plugin-Kompatibilitats-Check

Vor dem Wechsel zu Folia, prufe deine Plugins:

  1. Schau in die plugin.yml. Wenn ein Plugin folia-supported: true deklariert, wurde es angepasst.
  2. Durchsuche den Quellcode. Wenn ein Plugin Bukkit.getScheduler().runTask() oder runTaskTimer() aufruft, ist es nicht kompatibel.
  3. Prufe auf FoliaLib. Manche Plugins nutzen die FoliaLib-Bibliothek fur Kompatibilitat. Das ist ein gutes Zeichen.
  4. Teste auf einem Staging-Server. Starte einen separaten Testserver mit Folia und prufe jedes Plugin manuell. Manche Plugins "scheinen zu funktionieren", sturzen aber unter Last ab.

Die Zukunft von Folia

PaperMC entwickelt Folia aktiv weiter. Hier ist, was zu erwarten ist:

  • Erweitertes API. Mehr Werkzeuge fur Plugin-Entwickler, die die Migration vereinfachen.
  • Zusammenfuhrung mit Paper. Langfristig konnte Multithreading Teil des Haupt-Paper werden.
  • Wachsendes Plugin-Okosystem. Mit zunehmender Popularitat von Folia werden immer mehr Autoren ihre Plugins anpassen.
  • Performance-Verbesserungen. Die aktuelle Implementierung ist weit vom Ideal entfernt. Das Team arbeitet daran, den Synchronisations-Overhead zwischen Regionen zu reduzieren.

Folia ist aktuell kein Paper-Ersatz. Es ist ein Blick in die Zukunft von Minecraft Servern. Solange Mojang kein natives Multithreading hinzufugt (und das ist nicht geplant), bleibt Folia die einzige reale Losung fur grosse Server.

DDoS-Schutz fur Folia-Server

Folia-Server mit 200+ Spielern sind erstklassige Ziele fur DDoS-Angriffe. Eine grosse Community, ernsthafte Infrastruktur und motivierte Angreifer. Wir bei MineGuard arbeiten mit Folia-Servern genauso wie mit Paper. Keine spezielle Konfiguration notig: Unser Schutz arbeitet auf Netzwerkebene, unterhalb der Server-Software. Es spielt keine Rolle, ob du Paper, Folia, Purpur oder sogar Vanilla verwendest - die Proxy-Verkehrsfilterung findet statt, bevor Pakete deinen Server erreichen.

Wenn du einen grossen Folia-Server aufbaust, kummere dich fruhzeitig um den Schutz. Die Migration zu einem Schutzdienst wahrend eines aktiven Angriffs ist immer schwieriger und teurer als eine praventive Anbindung.

Fazit

Folia ist ein bedeutender Schritt nach vorne fur Minecraft Server mit hoher Last. Regionsbasiertes Multithreading ermoglicht es, die volle Leistung moderner Prozessoren zu nutzen, anstatt auf einen einzelnen Kern beschrankt zu sein. Aber der Ubergang erfordert Vorbereitung: Prufe deine Plugins, teste auf einem Staging-Server und sei bereit, dass einige vertraute Software ersetzt werden muss.

Fur Server mit 200+ Spielern, bei denen die TPS standig einbrechen, konnte Folia die Losung sein, nach der du gesucht hast. Fur kleinere Server bleibt Paper die bessere Wahl.


Schützen Sie Ihren Server vor DDoS-Angriffen

Kostenloser Schutz mit 5-Minuten-Einrichtung. 1 TB Traffic inklusive.

Kostenlos testen


Weitere Artikel