Ekran Kartlı Sunucu Satışları Başladı. İncele
Performans ve Optimizasyon

Aikar’s Flags Nedir, Hâlâ Kullanılmalı mı?

Aikar’s Flags’in her bayrağı ne yapar, 26.x sunucularında geçerli mi? G1GC ayarları, ZGC’ye ne zaman geçilir ve doğru heap değeri.

  • 10 dk okuma
  • Güncelleme:
  • Yayın:
  • Batihost Teknik Ekibi

Kısaca Özet

  • Aikar’s Flags, G1GC çöp toplayıcısını Minecraft sunucusunun bellek ayırma davranışına göre yeniden ayarlayan bir JVM bayrak setidir. Amacı ortalama hızı artırmak değil, uzun duraklamaları öldürüp tick süresini düzleştirmektir.
  • Set 26.x sunucularında hâlâ geçerlidir. PaperMC’nin resmî dokümanı geri çekilmedi; Java 25’te G1 zaten JVM’in genel varsayılan çöp toplayıcısı olduğu için bayraklar aynı temelin üstüne biner.
  • -Xms ve -Xmx daima eşit verilir. 8 GB paket → -Xms6G -Xmx6G, 12 GB → -Xms10G -Xmx10G, 16 GB → -Xms14G -Xmx14G, 32 GB → -Xms28G -Xmx28G.
  • Heap 12 GB’ı aşarsa beş bayrağın değeri değişir. 16 GB üzeri heap ya da ağır modpackte ZGC değerlendirilebilir; o zaman tüm G1* bayrakları silinir.

Aikar’s Flags, Minecraft sunucusu çalıştıran herkesin bir yerlerde kopyalayıp yapıştırdığı o uzun JVM bayrak dizisidir. Adını, Paper projesinin kurucu geliştiricisi Aikar’dan alır ve tek bir işi yapar: Java’nın G1 çöp toplayıcısını Minecraft’ın kendine özgü bellek ayırma davranışına göre yeniden ayarlar. Amacı sunucuyu “hızlandırmak” değildir — amacı, saniyede yüz binlerce kısa ömürlü nesne üreten bir uygulamada çöp toplama duraklamalarını kısaltıp tick süresini düzleştirmektir.

Bu sayfada setteki her bayrağın ne yaptığını tek tek, 26.x sunucularında hâlâ geçerli olup olmadığını, heap büyüklüğüne göre neyin değiştiğini ve ne zaman ZGC’ye geçmenin mantıklı olduğunu bulacaksınız. Sonunda 8, 12, 16 ve 32 GB’lık paketler için doğrudan kopyalanabilir tam başlatma satırları var.

Aikar’s Flags tam olarak neyi çözüyor?#

Minecraft sunucusu bellek açısından tuhaf bir yazılımdır. Her tick’te muazzam sayıda kısa ömürlü nesne üretir: konum vektörleri, paket nesneleri, entity durum kopyaları, chunk erişim anahtarları. Bunların neredeyse tamamı milisaniyeler içinde çöpe döner. Java’nın G1 çöp toplayıcısı varsayılan ayarlarıyla genç kuşağı görece küçük tutar; bu da çok sık ama kısa toplama turları, arada bir de uzun ve sinir bozucu bir “karışık” tur anlamına gelir.

Aikar’s Flags dengeyi tersine çevirir. Genç kuşağı bilinçli olarak büyütür, karışık toplamayı heap dolmadan çok önce ve küçük parçalar hâlinde tetikler, uygulamanın kendi kendine çöp toplama çağırmasını engeller. Kazanç ortalama hızda değil, dağılımın kuyruğundadır: 400 milisaniyelik tek bir duraklama yerine, kimsenin fark etmediği yirmi tane 20 ms’lik duraklama görürsünüz. Oyuncu tarafında bu fark, “ara sıra donuyor” ile “akıcı” arasındaki farktır.

BilgiÇöp toplama duraklaması sırasında sunucunun ana iş parçacığı durur. 50 ms’lik bir tick bütçesinde 200 ms’lik bir duraklama, tek başına dört tick’lik gecikme demektir. GC’nin TPS ile ilişkisini çöp toplayıcı seçimi sayfasında ayrıntılı anlattık.

Setin tamamı: 10 GB heap için tam komut#

Aşağıdaki dizi PaperMC dokümanındaki resmî settir; 12 GB’lık bir pakette (10 GB heap) doğrudan kullanılabilir. Tek satırdır, kopyalarken bölmeyin:

java -Xms10G -Xmx10G --add-modules=jdk.incubator.vector -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 --nogui

Uzun görünüyor ama içinde gereksiz tek bir bayrak yok. Şimdi hepsini tek tek açalım.

Bayrak bayrak ne yapıyor?#

BayrakNe yaparNeden Minecraft’ta önemli
-XX:+UseG1GCG1 çöp toplayıcısını seçerSetin temeli. Java 25’te zaten varsayılan, ama açıkça yazmak niyeti belgeler ve yanlış bir bayrağın devreye girmesini önler
-XX:G1NewSizePercent=30Genç kuşağın heap içindeki alt sınırını %30’a çekerVarsayılan %5’tir. Minecraft’ın kısa ömürlü nesne seli için fazla küçüktür; genç kuşak büyüdükçe nesneler eski kuşağa terfi etmeden ölür
-XX:G1MaxNewSizePercent=40Genç kuşağın üst sınırını %40 yaparG1’in genç kuşağı duraklama hedefini tutturmak için aşırı küçültmesini engeller
-XX:G1HeapRegionSize=8MHeap’i 8 MB’lık bölgelere bölerChunk ve entity verisi gibi büyük nesnelerin “humongous” sayılıp özel yola sokulmasını azaltır
-XX:MaxGCPauseMillis=200Hedef duraklama süresini 200 ms olarak bildirirBir garanti değil, bir hedeftir. Daha düşük vermek G1’i genç kuşağı küçültmeye iter ve genelde işleri kötüleştirir
-XX:G1MixedGCLiveThresholdPercent=90%90’a kadar dolu bölgeleri de karışık toplamaya dâhil ederVarsayılan %85’tir. Yükseltmek, eski kuşakta çöp birikmesini engelleyip tam toplama riskini düşürür
-XX:G1MixedGCCountTarget=4Karışık toplamayı dört tura yayarTek bir uzun tur yerine dört kısa tur: kuyruktaki duraklamalar kısalır
-XX:InitiatingHeapOccupancyPercent=15Eşzamanlı işaretleme turunu heap %15 doluyken başlatırVarsayılan %45’tir. Erken başlatmak, temizliğin oyuncu yoğunluğu artmadan bitmesini sağlar
-XX:G1ReservePercent=20%20’lik bir yedek alan ayırırAni ayırma patlamalarında “promotion failure” ve onu izleyen tam toplamayı önler
-XX:G1HeapWastePercent=5Tolere edilen çöp oranını %5’e indirirVarsayılan %10’dur. Düşürmek, G1’in temizliği ertelemesini engeller
-XX:G1RSetUpdatingPauseTimePercent=5Hatırlama kümesi güncellemesinin duraklama payını %5’e çekerBu işin çoğunu eşzamanlı iş parçacıklarına devreder; duraklama süresi kısalır
-XX:SurvivorRatio=32Eden ile survivor alanları arasındaki oranı belirlerMaxTenuringThreshold=1 ile birlikte çalışır: nesneler survivor’da oyalanmadan ya ölür ya terfi eder
-XX:MaxTenuringThreshold=1Bir turda hayatta kalan nesneyi doğrudan eski kuşağa terfi ettirirMinecraft’ta bir tur yaşayan nesne genelde uzun yaşar; kopyalama maliyeti boşuna ödenmez
-XX:+ParallelRefProcEnabledReferans işlemeyi paralel iş parçacıklarına dağıtırEklenti yoğun sunucularda çok sayıda zayıf/yumuşak referans olur; tek iş parçacığıyla işlenmesi duraklamayı uzatır
-XX:+DisableExplicitGCKoddaki System.gc() çağrılarını yok sayarBazı eklentiler “belleği temizliyoruz” diye tam toplama tetikler; bu bayrak o saniyelik donmaları keser
-XX:+AlwaysPreTouchHeap sayfalarına açılışta dokunurBellek gerçekten baştan ayrılır; ilk yarım saatteki sayfa hatası kaynaklı tick sıçramaları kaybolur
-XX:+PerfDisableSharedMemJVM’in performans sayaçlarını disk yerine bellekte tutarDisk yoğun anlarda sayaç yazımının tick’i kilitlemesini engeller
-XX:+UnlockExperimentalVMOptionsDeneysel bayrakların kabul edilmesini sağlarSetteki bazı G1 ayarları bu kilidi ister; tek başına hiçbir davranış değiştirmez
--add-modules=jdk.incubator.vectorVektör API modülünü açarPaper ve Purpur’un SIMD hızlandırmalı kod yollarını kullanabilmesi için gerekir
Aikar’s Flags setindeki bayrakların tek tek görevleri
Dikkat-XX:+AlwaysPreTouch bayrağını Pterodactyl gibi konteyner tabanlı panellerde kullanmayın. Konteyner bellek limiti heap dışı kullanımı da saydığı için açılışta tüm sayfalara dokunmak sunucunun OOM ile öldürülmesine yol açabilir. Panel tarafındaki limit, heap’ten en az 2 GB büyük olmalıdır.

Xms = Xmx neden pazarlık konusu değil?#

-Xms JVM’in açılışta ayırdığı heap, -Xmx ise büyüyebileceği tavandır. Masaüstü uygulamalarında bu ikisini farklı vermek mantıklıdır. Minecraft sunucusunda değildir: dünya yüklenir, eklentiler önbelleklerini kurar, oyuncular girer ve heap zaten ilk saatte tavana yaklaşır. Aradaki her genişleme adımı ek bir toplama turu ve bellek haritalama maliyeti üretir.

Ayrıca G1, boş heap alanını “ziyan” olarak görmez; elindeki alanı toplama stratejisini planlarken kullanır. Ona baştan ne kadar alanı olduğunu söylemek, doğru karar vermesini sağlar. Bu yüzden aşağıdaki tüm örneklerde iki değer birbirine eşittir ve toplam sistem belleğinden işletim sistemi ile JVM’in heap dışı kullanımı için 2 GB pay bırakılmıştır. Heap boyutlandırmasının tamamı RAM ayarları sayfasında.

Heap 12 GB’ı aşarsa değişen beş bayrak#

Aikar’ın kendi notlarında açıkça belirtilen bir eşik var: heap 12 GB’ın üzerine çıktığında genç kuşak büyütülür, bölge boyutu iki katına çıkar ve toplama biraz daha geç tetiklenir. Değiştirilecek satırlar şunlar:

-XX:G1NewSizePercent=40
-XX:G1MaxNewSizePercent=50
-XX:G1HeapRegionSize=16M
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=20

Geri kalan bayraklar aynen kalır. Yani 16 GB’lık bir pakette (14 GB heap) ve 32 GB’lık bir pakette (28 GB heap) bu beş değeri güncellenmiş hâliyle kullanırsınız; 8 ve 12 GB’lık paketlerde standart set geçerlidir.

Pakete göre tam başlatma satırları#

Aşağıdaki dört satır doğrudan kullanılabilir. Jar adını kendi dosyanızla değiştirin — Purpur için purpur.jar, Fabric için fabric-server-launch.jar, Forge’da ise installer’ın ürettiği başlatma betiği kullanılır.

8 GB paket (6 GB heap)#

java -Xms6G -Xmx6G --add-modules=jdk.incubator.vector -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 --nogui

12 GB paket (10 GB heap)#

Yukarıda verdiğimiz resmî setin aynısıdır; tek fark -Xms10G -Xmx10G değerleridir. Bu, 10-30 oyunculu eklentili bir Paper sunucusunun tipik yapılandırmasıdır.

16 GB paket (14 GB heap)#

java -Xms14G -Xmx14G --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar paper.jar --nogui

32 GB paket (28 GB heap)#

java -Xms28G -Xmx28G --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar paper.jar --nogui

Bu satırları her seferinde konsola yazmazsınız; bir başlatma dosyasına koyarsınız. Windows tarafında start.bat oluşturma sayfası, Linux tarafında ise systemd servisi kurulumu doğru yapıyı adım adım anlatıyor.

26.x sunucularında geçerli mi? İstemci–sunucu ayrımı#

2026’da en çok yanlış aktarılan konu bu. 26.1 sürüm notlarında geçen “garbage collection has been changed from G1GC to ZGC for compatible computers” satırı, Minecraft Launcher’ın oyun istemcisine verdiği JVM varsayılanını anlatır. Aynı sürüm notundaki “oyun artık varsayılan 4 GB RAM ayırıyor” maddesi de istemci tahsisidir.

Sunucu jar’ının bir launcher’ı yoktur. java -jar paper.jar yazdığınızda hangi çöp toplayıcının çalışacağını yalnızca sizin verdiğiniz bayraklar ve JVM’in kendi varsayılanı belirler. Java 25’te JEP 523 ile G1, tüm ortamlarda genel varsayılan çöp toplayıcıdır. Yani bayraksız açtığınız bir 26.2 sunucusu ZGC değil G1GC kullanır — ve Aikar’s Flags tam olarak bu G1’i ayarladığı için hala işini yapmaya devam eder.

Uyarı“Aikar’s Flags artık geçersiz” diyen içeriklere itibar etmeyin. PaperMC’nin resmî dokümanı yerinde duruyor. Aynı şekilde -XX:+UseZGC -XX:+ZGenerational kombinasyonunu da kopyalamayın: JEP 490 ile ZGC’nin non-generational modu kaldırıldı, -XX:+ZGenerational Java 25’te obsolete durumdadır ve yalnızca uyarı basar. Doğru kullanım tek başına -XX:+UseZGC.

Ne zaman ZGC’ye geçilir?#

Pratik ayrım basit: 8-12 GB heap → G1GC + Aikar’s Flags. Bu aralıkta setin verdiği sonuç öngörülebilir ve topluluk tarafından fazlasıyla test edilmiştir. 16 GB ve üzeri heap, ya da yüzlerce mod barındıran ağır bir modpack → ZGC değerlendirilebilir. ZGC duraklama süresini heap büyüklüğünden bağımsız olarak milisaniyenin altında tutmayı hedefler; karşılığında daha fazla CPU zamanı ve heap dışı bellek harcar.

ZGC’ye geçerken setteki tüm G1* bayraklarını, MaxGCPauseMillis ve SurvivorRatio gibi G1’e özgü ayarları silin. Kalması gereken çekirdek şudur:

java -Xms28G -Xmx28G -XX:+UseZGC -XX:+UseCompactObjectHeaders -XX:+UseStringDeduplication -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem -jar paper.jar --nogui

Karar vermeden önce ölçün. Sunucuyu bir hafta G1GC + Aikar’s Flags, sonraki hafta ZGC ile aynı oyuncu yoğunluğunda çalıştırın ve tick süresi dağılımını karşılaştırın. İki toplayıcının teknik farkları ve ölçüm yöntemi GC seçimi ve ayarları sayfasında ayrıntılı.

Gerekli indirmeler#

26.1 ve sonrası Java 25 ister. Daha eski bir JDK ile açmaya çalışırsanız sunucu UnsupportedClassVersionError ile durur; sürüm eşleşmesinin tamamı hangi Java sürümü gerekir sayfasında. Java 26 çıktı ama LTS değil; sunucu tarafında Java 25 LTS’te kalın.

İndirmeniz gerekenler
  • Eclipse Temurin JDK 25Önerilen LTS Windows x64 / Linux x64.msi · .tar.gzÜcretsiz
    İndir
  • Paper 26.2 sunucu jar Her platform.jar
    İndir
  • spark profilerÖlçüm için Paper · Fabric · NeoForge.jar
    İndir

Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar veya JDK indirmeyin.

Sık yapılan hatalar#

Bayrakları jar’dan sonra yazmak#

JVM argümanları -jar ifadesinden önce gelmelidir. Sonrasına yazılan her şey sunucu uygulamasına parametre olarak geçer ve JVM tarafından tamamen yok sayılır. Sunucu açılır, hiçbir bayrak uygulanmaz, siz de neden değişmediğini anlamazsınız.

Setin yarısını kopyalamak#

Bayraklar birlikte tasarlandı. MaxTenuringThreshold=1 ile SurvivorRatio=32 birbirini tamamlar; InitiatingHeapOccupancyPercent=15 düşük tutulmuşken G1ReservePercent atlanırsa yedek alan yetmez. Yarım set, hiç bayrak vermemekten daha kötü sonuç üretebilir.

MaxGCPauseMillis değerini düşürmek#

“50 ms yazayım da duraklamalar kısalsın” mantığı ters teper. G1 hedefi tutturmak için genç kuşağı küçültür, bu da daha sık toplama ve daha çok terfi demektir. 200 ms bilinçli seçilmiş bir değerdir, dokunmayın.

Eski sürümlerin bayraklarını taşımak#

1.12.2 döneminden kalma -XX:+UseConcMarkSweepGC gibi bayraklar modern JVM’de tamamen kaldırıldı; sunucu hiç açılmaz. Eski bir sunucuyu 26.2’ye taşırken başlatma satırını sıfırdan yazın. Sürüm geçişinin tamamı sürüm yükseltme rehberinde.

Bayrakları donanım eksikliğinin üstünü örtmek için kullanmak#

Aikar’s Flags, paylaşımlı vCPU’lu düşük frekanslı bir makineyi kurtarmaz; orada bayrak eklemek pratikte birşey değiştirmez. Ana tick döngüsü tek çekirdekte çalıştığı için belirleyici olan çekirdek sayısı değil saat hızıdır. Yüksek frekanslı AMD Ryzen 9 ve NVMe SSD üzerine kurulu Minecraft sunucu paketleri ile bayrakların katkısı gerçekten görünür hâle gelir.

Özetle#

Aikar’s Flags, G1GC’yi Minecraft’ın nesne üretim ritmine göre ayarlayan ve 26.x sunucularında hâlâ geçerli olan bir settir. Genç kuşağı büyütür, karışık toplamayı erken ve parçalı tetikler, açık GC çağrılarını keser; kazanç ortalama TPS’te değil, uzun duraklamaların kaybolmasındadır. -Xms ve -Xmx daima eşit verilir: 8 GB paket için 6 GB, 12 GB için 10 GB, 16 GB için 14 GB, 32 GB için 28 GB heap. Heap 12 GB’ı aşarsa beş bayrağın değeri güncellenir.

26.1 ile duyurulan ZGC geçişinin istemciye ait olduğunu, sunucunuzun bayraksız çalıştığında G1GC kullandığını ve -XX:+ZGenerational bayrağının Java 25’te obsolete olduğunu unutmayın. 16 GB üzeri heap veya ağır modpack çalıştırıyorsanız ZGC’yi deneyin, ama iki seti asla karıştırmayın. Ve her değişiklikten sonra ölçün — bayraklarla değil, optimizasyon rehberindeki adımlarla birleştiğinde gerçek fark ortaya çıkar.

Sıkça Sorulan Sorular#

Aikar’s Flags nedir?

Minecraft sunucularında G1GC çöp toplayıcısının davranışını değiştiren, PaperMC dokümanında resmî olarak yayımlanan bir JVM bayrak setidir. Genç kuşağı büyütür, karışık toplama turlarını erken ve küçük parçalar hâlinde tetikler, açık GC çağrılarını engeller. Sonuç: daha az sayıda ama çok daha kısa duraklama, dolayısıyla daha düz bir TPS grafiği.

Aikar’s Flags 2026’da hâlâ kullanılıyor mu?

Evet. PaperMC’nin resmî Aikar’s Flags dokümanı 26.x çıkışlarından sonra geri çekilmedi ve hâlâ G1GC tabanlı seti öneriyor. Java 25’te de G1, JVM’in genel varsayılan çöp toplayıcısıdır; yani bayrakların üstüne oturduğu zemin değişmedi. 8-12 GB heap aralığında en öngörülebilir sonucu bu set verir.

Minecraft 26.2 sunucusu otomatik olarak ZGC mi kullanır?

Hayır. 26.1 sürüm notlarındaki “G1GC’den ZGC’ye geçildi” satırı Minecraft Launcher’ın oyun istemcisi için ürettiği JVM varsayılanını anlatır. Sunucu jar’ının launcher’ı yoktur; çöp toplayıcıyı tamamen sizin verdiğiniz bayraklar belirler. Bayraksız açılan bir 26.2 sunucusu G1GC ile çalışır.

Xms ve Xmx neden eşit olmalı?

Minecraft sunucusu açıldığı andan itibaren tavan değere doğru koşar; heap’i kademeli büyütmek yalnızca maliyet üretir. Değerler eşitken JVM belleği tek seferde ayırır, çalışma sırasında genişleme yapmaz ve -XX:+AlwaysPreTouch ile sayfalar önceden dokunulmuş hâle gelir. Açılış birkaç saniye uzar, karşılığında tick sıçramaları kaybolur.

Aikar’s Flags ile ZGC bayraklarını birlikte kullanabilir miyim?

Hayır, kullanamazsınız. G1NewSizePercent, G1HeapRegionSize, MaxGCPauseMillis gibi bayraklar yalnızca G1’e aittir; ZGC ile ya yok sayılır ya da sunucu hiç açılmaz. Bir çöp toplayıcı seçip yalnızca ona ait bayraklarla devam edin. ZGC’ye geçerken tüm G1* satırlarını silin.

-XX:+ZGenerational bayrağını eklemeli miyim?

Hayır. JEP 490 ile ZGC’nin non-generational modu kaldırıldı; bayrak Java 25’te obsolete durumdadır ve her açılışta uyarı basar. İnternette dolaşan -XX:+UseZGC -XX:+ZGenerational kombinasyonu 2026 için yanlıştır. Doğru kullanım yalnızca -XX:+UseZGC şeklindedir.

Bayrakları eklediğim hâlde TPS artmadı, neden?

Çünkü Aikar’s Flags bir performans sihri değil, duraklama yönetimidir. Entity yığılması, hopper zincirleri, kötü yazılmış eklenti veya yetersiz saat hızı gibi CPU kaynaklı sorunları çözmez. Önce spark ile profil çıkarın; darboğaz GC değilse bayraklarla uğraşmak zaman kaybıdır.

Aikar’s Flags Forge ve Fabric sunucularında çalışır mı?

Evet. Bayraklar JVM’e verilir, sunucu yazılımına değil; Paper, Purpur, Spigot, Forge, Fabric ve NeoForge’da aynı şekilde geçerlidir. Tek fark çalıştırdığınız jar dosyasının adıdır. Yalnız büyük modpacklerde heap ihtiyacı yükseldiği için 12 GB üstü varyantı kullanmanız gerekebilir.

Performans ve Optimizasyon — Tüm Rehberler#

  1. Minecraft Sunucu Optimizasyonu: TPS’i 20’de Tutma Rehberi
  2. Minecraft TPS Düşüklüğü ve Çözüm Yolları
  3. Minecraft Sunucu Lag Sorunu Nasıl Çözülür?
  4. Spark ve Timings Raporu ile Minecraft Performans Analizi
  5. Minecraft Sunucusu Kaç GB RAM İster? (Oyuncu Sayısına Göre Tablo)
  6. Minecraft Sunucusu İçin Doğru Donanım Nasıl Seçilir?
  7. Minecraft View Distance ve Simulation Distance Ayarları
  8. paper.yml, spigot.yml ve bukkit.yml Optimizasyon Rehberi
  9. Aikar’s Flags Nedir, Hâlâ Kullanılmalı mı?
  10. Minecraft Sunucusunda Garbage Collector Seçimi ve Ayarları
  11. Minecraft Sunucusunda Entity Limit ve Mob Yoğunluğu Ayarlama
  12. Minecraft’ta Hopper Lag’i ve Optimizasyonu

Bu rehber Batihost teknik ekibi tarafından hazırlanmış ve tarihinde güncellenmiştir. Eksik veya hatalı bulduğunuz bir bilgi varsa bize bildirin.

Başa dön