Belirtiler: Sunucu genelinde yavaşlık, TPS 20 altında, bloklar gecikmeli kırılıyor, mobiler donuyor, chunk yavaş yükleniyor. Lag birden fazla sebepten (CPU, RAM, disk, ağ, plugin, entity) kaynaklanabilir. Bu rehber sistematik bir lag giderme pratiği sunar.
Olası Nedenler
- Yetersiz donanım — CPU tek çekirdek performansı düşük, RAM az ya da disk HDD
- Kötü Java ayarları — GC flag'leri yok, heap değeri uygunsuz
- Kontrolsüz plugin — tick başına ağır işlem veya main thread'de DB sorgusu
- Entity ve chunk overload — sınırsız world border, kontrolsüz mob farm'ları
- Redstone devreleri — sürekli tetiklenen karmaşık devreler tick'i tıkar
- Çok yüksek view-distance / simulation-distance değeri
Adım Adım Çözüm
1. Adım
Önce ölçün: /tps ile TPS, /spark tps ile ayrıntı, /spark profiler ile kök neden profili alın. Raporu KEYDAL Spark Analyzer'a yüklerseniz ücretsiz yorum alırsınız
/spark profiler --thread * --timeout 602. Adım
view-distance ve simulation-distance değerlerini düşürün. 10 / 6 iyi bir başlangıçtır
# server.properties
view-distance=10
simulation-distance=63. Adım
Hâlâ Spigot kullanıyorsanız Paper veya Purpur'a geçin. Paper; aynı donanımda %40–60 daha iyi performans verir
wget -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/latest/downloads/paper-1.21.1-latest.jar"4. Adım
Aikar's Flags ile başlatın — GC davranışını Minecraft iş yüküne göre optimize eder. Heap değerini Xms=Xmx tutun
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar paper.jar --nogui5. Adım
spigot.yml / paper.yml entity-activation-range değerlerini daraltın — uzaktaki mobiler tick tüketmez
# spigot.yml
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 86. Adım
Chunky plugin ile dünyayı önceden üretin. Runtime chunk generation ciddi lag üretir
/chunky radius 5000
/chunky start7. Adım
WorldBorder ayarlayıp keşif alanını sınırlayın — dünya dosyası şişmez ve chunk üretimi sabit kalır
/worldborder center 0 0
/worldborder set 100008. Adım
Plugin tick süresine bakın: /spark profiler raporunda yüksek CPU tüketen plugini ya güncelleyin ya değiştirin
9. Adım
Disk HDD ise mutlaka SSD'ye geçin. Minecraft region I/O ağır iş yüküdür; NVMe ideal
iostat -x 2 5 # await değerleri yüksekse disk darboğaz10. Adım
TPS düşükse hemen restart yerine kök nedeni bulun — aksi halde yarın tekrar karşınıza çıkar