Paper Sunucusu için Optimum JVM Başlatma Parametreleri
Minecraft sunucusu başlatırken kullandığınız
java komutunun parametreleri — özellikle JVM bayrakları — sunucu performansını doğrudan etkiler. Yanlış veya eksik parametreler, yeterli RAM olmasına rağmen TPS düşüşüne, GC (Garbage Collection) duraksatmalarına veya anlık donmalara neden olabilir. Bu rehberde Paper sunucusu için kanıtlanmış JVM parametre setini ve her parametrenin neden önemli olduğunu anlatıyorum.Temel Parametreler: -Xms ve -Xmx
java -Xms4G -Xmx4G -jar paper.jar nogui
- -Xms: JVM'nin başlangıçta ayırdığı minimum heap boyutu.
- -Xmx: JVM'nin kullanabileceği maksimum heap boyutu.
İkisini eşit yapmak önemlidir. Eşit değil ise JVM başlangıçta az RAM alır ve yük arttıkça artırır; bu esneme süreci GC duraksatmalarına neden olur. Eşit yaparsanız JVM en başından sabit bellek bloğu alır ve daha kararlı çalışır.
G1GC: Önerilen Garbage Collector
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-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
Bu parametreler Aikar'ın (PaperMC kurucusu) yayımladığı ve topluluk tarafından yaygın olarak kabul gören "Aikar Flags" setidir.
Aikar Flags Neden Bu Kadar İyi?
G1GC (Garbage First Garbage Collector), büyük heap boyutlarında uzun duraksatmaları azaltmak için tasarlanmıştır. Minecraft sunucuları hem çok nesne üretir hem de ani yük dalgalanmaları yaşar; G1GC bu senaryolar için özellikle uygundur.
- MaxGCPauseMillis=200: GC, mümkünse 200ms'den kısa duraksatmalar hedefler. Bu değer TPS düşüşünü minimize eder.
- G1HeapRegionSize=8M: Büyük nesnelerin (Minecraft chunk verisi gibi) normal bölgelere sığmasını sağlar.
- InitiatingHeapOccupancyPercent=15: Heap dolmadan önce erken GC başlatır; ani büyük GC duraklarını önler.
- DisableExplicitGC: Pluginlerin
System.gc()çağırmasını engeller; bu çağrı büyük GC tetikleyebilir.
ZGC: Alternatif Garbage Collector (Java 21+)
Java 21 ile birlikte ZGC (Z Garbage Collector) gerçek anlamda üretim ortamına hazır hale geldi. ZGC, GC duraksatmalarını neredeyse sıfıra indirmeyi hedefler:
java -Xms4G -Xmx4G -XX:+UseZGC -XX:+ZGenerational -jar paper.jar nogui
ZGC daha fazla CPU kullanır ama duraksatma süresi açısından G1GC'den üstündür. 8GB+ RAM ve çok sayıda oyuncu olan sunucularda deneye değer.
Tam Önerilen Başlatma Komutu
Küçük-orta sunucu (4 GB RAM) için:
java -Xms4G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:InitiatingHeapOccupancyPercent=15 \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar paper.jar nogui
-Dusing.aikars.flags parametresi, Paper ekibinin bu flag seti için destek sağlamak amacıyla eklediği bir işaretçidir.RAM Miktarına Göre Ayarlama
- 2 GB:
-Xms2G -Xmx2G— küçük sunucu, az plugin
- 4 GB:
-Xms4G -Xmx4G— orta sunucu, standart plugin seti
- 8 GB:
-Xms6G -Xmx6G— büyük sunucu (işletim sistemine 2G bırakın)
- 16 GB:
-Xms10G -Xmx10G— yoğun trafik, çok plugin
Sisteminizin toplam RAM'inin %60-70'ini sunucuya verin; geri kalanı işletim sistemi ve diğer süreçler için bırakın.
Sonuç
Doğru JVM parametreleri, sunucu donanımınızı daha verimli kullanmanızı sağlar. Aikar Flags setini kullanarak hem GC duraksatmalarını azaltabilir hem de daha kararlı TPS elde edebilirsiniz. Yeterli RAM olmasına rağmen donma yaşıyorsanız, başlatma parametrelerinizi gözden geçirmek genellikle en hızlı çözüme götürür.
💡 Etkileşim için giriş yap.