Minecraft sunucunuzda yeterli RAM bulunmasına rağmen lag, donma, ani kapanma veya OutOfMemoryError gibi problemler yaşıyorsanız sorun yalnızca sunucunun toplam RAM miktarı olmayabilir.
Java ile çalışan Minecraft sunucularında belleğin ne kadarının kullanılabileceği genellikle -Xms ve -Xmx parametreleriyle belirlenir.
Özellikle Windows Server ve Windows VDS üzerinde Minecraft çalıştıran kullanıcıların en sık yaptığı hatalardan biri, sunucuda bulunan RAM'in tamamını Java'ya vermek veya başlangıç dosyasına gereğinden fazla bellek tanımlamaktır.
Bu rehberde ağırlıklı olarak Windows Server üzerinde Minecraft RAM ayarlarının nasıl yapılacağını, -Xms ve -Xmx değerlerinin ne anlama geldiğini ve modlu Minecraft sunucularında RAM kullanımını nasıl kontrol edebileceğinizi anlatacağız. Linux kullanıcıları için gerekli örnekleri de rehberin devamında bulabilirsiniz.
1. -Xms ve -Xmx nedir?
Java başlangıç komutunda sık gördüğümüz:
-Xms -Xmx
parametreleri Java heap belleğinin sınırlarını belirler.
-Xms Java'nın başlangıç heap belleğini, -Xmx ise kullanabileceği maksimum heap belleğini belirtir.
Örneğin:
java -Xms4G -Xmx8G -jar server.jar nogui
komutunda:
-Xms4G= Java başlangıçta 4 GB heap alanıyla çalışır.-Xmx8G= Java maksimum 8 GB heap kullanabilir.
Buradaki G gigabyte anlamına gelir.
2. Windows Server'da Minecraft'ın RAM ayarı nerede bulunur?
Vanilla, Paper, Spigot veya bazı özel Minecraft sunucularında başlangıç komutu genellikle:
start.bat server.bat run.bat
gibi bir BAT dosyası içerisinde bulunur.
Örneğin:
@echo off java -Xms4G -Xmx8G -jar server.jar nogui pause
Bu dosyaya sağ tıklayıp Düzenle diyerek RAM değerlerini değiştirebilirsiniz.
Dosya uzantılarını Windows Explorer'da görünür hale getirmeniz faydalı olacaktır. Aksi halde dosya gerçekte start.bat.txt olarak kaydedilebilir.
3. Forge ve NeoForge sunucularında RAM ayarı farklı olabilir
Modern Forge veya NeoForge server paketlerinde RAM ayarı her zaman doğrudan run.bat içerisinde bulunmaz.
Örneğin NeoForge başlangıç dosyasında:
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/VERSION/win_args.txt %*
benzeri bir komut görebilirsiniz.
Bu durumda RAM ayarları:
user_jvm_args.txt
dosyasından okunabilir.
Örneğin:
-Xms4G -Xmx8G
şeklinde değerler bulunabilir.
Dolayısıyla Forge veya NeoForge kullanıyorsanız yalnızca run.bat dosyasına bakmak yeterli olmayabilir.
4. Sunucunun bütün RAM'ini Minecraft'a vermeyin
Örneğin Windows VDS'inizde toplam:
16 GB RAM
bulunuyorsa Java'ya:
-Xmx16G
vermek genellikle doğru bir yaklaşım değildir.
Çünkü Minecraft dışında da RAM kullanan bileşenler vardır:
- Windows Server işletim sistemi
- Uzak Masaüstü hizmetleri
- Antivirüs veya güvenlik servisleri
- Java'nın heap dışı bellek kullanımı
- Disk cache
- Kontrol paneli veya ek uygulamalar
- Aynı sunucuda çalışan diğer servisler
Tüm fiziksel RAM Java'ya ayrılırsa Windows'un kendisi bellek sıkıntısı yaşayabilir ve pagefile kullanımına geçebilir.
Bu da Minecraft performansını iyileştirmek yerine kötüleştirebilir.
5. 16 GB Windows VDS için örnek RAM ayarı
Örneğin yalnızca bir Minecraft sunucusu çalıştırılan 16 GB RAM'li Windows VDS üzerinde başlangıç noktası olarak:
-Xms4G -Xmx12G
gibi bir yapı düşünülebilir.
Ancak bu değer herkes için aynı olmak zorunda değildir.
Gerçek ihtiyaç:
- oyuncu sayısına,
- mod veya plugin sayısına,
- world boyutuna,
- view-distance değerine,
- aynı makinede çalışan diğer uygulamalara
göre değişir.
Bu nedenle yalnızca "sunucumda 16 GB var" bilgisine bakarak Java'ya kesin olarak belirli bir miktar RAM verilmesi doğru değildir.
6. -Xms ile -Xmx aynı olmak zorunda mı?
Hayır.
Örneğin:
-Xms4G -Xmx10G
kullanabilirsiniz.
Bu durumda Java başlangıçta daha düşük heap alanıyla başlayabilir ve ihtiyaç oldukça belirlenen maksimum sınıra kadar büyüyebilir.
Bazı Minecraft optimizasyon rehberlerinde -Xms ve -Xmx değerlerinin eşit verilmesi önerilir:
-Xms8G -Xmx8G
Bu yöntem bazı kurulumlarda tercih edilebilir ancak her Windows VDS için zorunlu değildir.
Önemli olan maksimum heap değerinin fiziksel sistem kaynaklarını zorlamayacak şekilde belirlenmesidir.
7. Fazla RAM vermek Minecraft'ı otomatik olarak hızlandırır mı?
Hayır.
Minecraft sunucusunda 4 GB RAM gerçekten yeterliyken Java'ya 24 GB vermek sunucuyu otomatik olarak daha hızlı hale getirmez.
Minecraft performansında RAM'in yanında özellikle:
- işlemcinin tek çekirdek performansı,
- tick süresi,
- chunk generation,
- plugin ve mod yükü,
- entity sayısı,
- view-distance,
- simulation-distance
gibi faktörler de önemlidir.
Bu nedenle:
Daha fazla RAM ≠ Her zaman daha yüksek TPS
şeklinde düşünmek gerekir.
8. Windows Görev Yöneticisi ile RAM kullanımını kontrol edin
Windows Server üzerinde:
Ctrl + Shift + Esc
tuşlarına basarak Görev Yöneticisi'ni açabilirsiniz.
İşlemler veya Ayrıntılar bölümünde:
java.exe
işlemini bulun.
Bellek kullanımını buradan takip edebilirsiniz.
Ayrıca:
Performans → Bellek
bölümünden Windows Server'ın toplam RAM kullanımını kontrol edebilirsiniz.
Örneğin sistem sürekli:
%95 - %100 RAM kullanımı
seviyesindeyse yalnızca Minecraft'ın değil, tüm sistemin bellek kullanımını incelemek gerekir.
9. PowerShell ile Java RAM kullanımını kontrol edin
Windows PowerShell üzerinden çalışan Java işlemlerini görmek için:
Get-Process java -ErrorAction SilentlyContinue
kullanabilirsiniz.
Daha okunabilir bellek bilgisi için:
Get-Process java -ErrorAction SilentlyContinue | Select-Object Id,ProcessName,@{Name="RAM_MB";Expression={[math]::Round($_.WorkingSet64/1MB,0)}}
Örneğin:
Id ProcessName RAM_MB ---- ----------- ------ 4820 java 6350
gibi bir çıktı Java işleminin Windows tarafında yaklaşık ne kadar fiziksel bellek kullandığını görmenize yardımcı olur.
10. Birden fazla Java işlemi varsa dikkat edin
Aynı Windows VDS üzerinde birden fazla Minecraft sunucusu çalışıyorsa:
Get-Process java
komutu birden fazla Java işlemi gösterebilir.
Her Minecraft instance'ı ayrı RAM sınırına sahip olabilir.
Örneğin iki sunucu da:
-Xmx8G
ile çalışıyorsa teorik olarak yalnızca Minecraft sunucuları için maksimum 16 GB heap tanımlanmış olabilir.
16 GB RAM'li bir Windows VDS üzerinde buna işletim sisteminin ihtiyacı da eklendiğinde fiziksel RAM yetersiz kalabilir.
Birden fazla Minecraft instance çalıştırırken toplam kaynak planlaması yapılmalıdır.
11. OutOfMemoryError ne anlama gelir?
Log içerisinde:
java.lang.OutOfMemoryError: Java heap space
görüyorsanız Java'nın kullanılabilir heap alanı tükenmiş olabilir.
Bu durumda -Xmx değerinin yetersiz olup olmadığını kontrol edebilirsiniz.
Ancak hemen RAM artırmadan önce şu soruları da sorun:
- Bir mod veya plugin memory leak oluşturuyor olabilir mi?
- Çok fazla chunk yüklü mü?
- Entity sayısı aşırı yüksek mi?
- Sunucuya gerçekten yeterli fiziksel RAM var mı?
- Başka Java instance'ları RAM tüketiyor mu?
Sadece -Xmx değerini sürekli artırmak problemin gerçek sebebini gizleyebilir.
12. Windows'ta Minecraft'ın hangi başlangıç komutuyla çalıştığını bulun
Sunucu farklı BAT dosyaları içeriyorsa hangi dosyanın gerçekten çalıştırıldığını kontrol edin.
Örneğin:
start.bat run.bat server-start.bat
dosyalarından yalnızca biri gerçek başlangıç komutu olabilir.
Çalışan Java işleminin komut satırını PowerShell üzerinden görmek için:
Get-CimInstance Win32_Process -Filter "Name='java.exe'" | Select-Object ProcessId,CommandLine
Bu çıktı sayesinde Minecraft'ın hangi JAR, argüman veya JVM parametreleriyle başlatıldığını kontrol edebilirsiniz.
13. Xmx değerini değiştirdim ama RAM değişmedi
Bu durumda birkaç ihtimal vardır.
Örneğin yanlış BAT dosyasını düzenlemiş olabilirsiniz.
Forge veya NeoForge server kullanıyorsanız RAM ayarı:
user_jvm_args.txt
dosyasından okunuyor olabilir.
Başka bir script de Java parametrelerini override ediyor olabilir.
Sunucuyu yeniden başlatmadan yapılan JVM parametresi değişiklikleri aktif çalışan Java işlemine uygulanmaz.
Bu nedenle değişiklik yaptıktan sonra Minecraft sunucusunu güvenli şekilde:
stop
komutuyla kapatıp yeniden başlatın.
14. Windows pagefile neden önemlidir?
Windows fiziksel RAM yetersiz kaldığında pagefile kullanabilir.
Pagefile disk üzerinde bulunduğu için fiziksel RAM'den çok daha yavaştır.
Minecraft sunucusunun yoğun şekilde disk tabanlı sanal belleğe düşmesi:
- ani lag,
- uzun tick süreleri,
- sistemin ağırlaşması,
- Uzak Masaüstü bağlantısının yavaşlaması
gibi problemlere katkıda bulunabilir.
Bu nedenle VDS RAM'inin tamamını Java heap olarak vermek yerine Windows için de yeterli boşluk bırakılmalıdır.
15. RAM mi CPU mu sorunlu nasıl anlarsınız?
Minecraft lag yaptığında kullanıcıların ilk yaptığı işlemlerden biri RAM artırmaktır.
Ancak RAM kullanımı normal seviyedeyken sunucunun TPS değeri düşüyorsa asıl darboğaz CPU olabilir.
Örneğin:
RAM kullanımı: %55 CPU'da bir çekirdek: %100 TPS: düşük
durumunda daha fazla RAM vermek problemi çözmeyebilir.
Özellikle Minecraft ana oyun döngüsünün önemli bölümleri güçlü tek çekirdek performansından faydalanır.
Bu nedenle modlu veya yüksek oyunculu Minecraft sunucularında yalnızca yüksek RAM değil, güçlü işlemci seçimi de önemlidir.
16. Modlu Minecraft sunucuları neden daha fazla RAM kullanabilir?
Forge, NeoForge veya Fabric üzerinde çok sayıda mod bulunan sunucular vanilla veya hafif Paper sunucularına göre daha yüksek RAM ihtiyacına sahip olabilir.
Özellikle:
- çok sayıda yeni block ve item ekleyen modlar,
- yeni dimension ekleyen modlar,
- büyük world generation modları,
- teknoloji ve otomasyon modları,
- yüksek sayıda entity oluşturan modlar
bellek ihtiyacını artırabilir.
Ancak modpack'te 200 mod bulunması tek başına kesin RAM miktarını belirlemez.
Modların ne yaptığı ve oyuncuların sunucuyu nasıl kullandığı da önemlidir.
17. Minecraft sunucusuna ne kadar RAM verilmeli?
Tek bir kesin değer yoktur.
Küçük vanilla veya Paper sunucular daha düşük RAM ile çalışabilirken büyük modpack'ler çok daha yüksek bellek ihtiyacı duyabilir.
RAM seçerken şu faktörleri birlikte değerlendirin:
- oyuncu sayısı,
- mod veya plugin sayısı,
- world generation yoğunluğu,
- view-distance,
- simulation-distance,
- aynı makinedeki diğer servisler,
- Windows'un ihtiyaç duyduğu bellek.
En doğru yaklaşım sunucunun gerçek kullanımını takip edip ihtiyaç oldukça kontrollü şekilde kaynak artırmaktır.
18. Çok yüksek Xms değeri vermek gerekli mi?
Örneğin 32 GB RAM'li bir Windows sunucusunda:
-Xms28G
vermek Java'nın başlangıçtan itibaren çok büyük heap alanı için hazırlanmasına neden olabilir.
Sunucunuz gerçekte bu kadar belleğe ihtiyaç duymuyorsa gereksiz şekilde yüksek başlangıç değeri kullanmanız şart değildir.
Örneğin:
-Xms4G -Xmx16G
gibi bir yapı bazı kullanım senaryolarında daha esnek olabilir.
Ancak optimum JVM ayarı kullanılan Java sürümüne, Minecraft sürümüne ve sunucunun iş yüküne göre değişebilir.
19. Java RAM kullanımı neden Xmx değerinden farklı görünüyor?
-Xmx8G kullanmanız Windows Görev Yöneticisi'nde Java'nın her zaman tam olarak 8 GB göstereceği anlamına gelmez.
-Xmx esas olarak maksimum Java heap sınırını belirtir.
JVM bunun dışında da bazı bellek alanları kullanabilir.
Aynı şekilde sunucu o anda yalnızca 3 GB heap kullanıyorsa Java'nın zorla 8 GB oyun verisiyle doldurması gerekmez.
Bu nedenle Görev Yöneticisi değerleriyle -Xmx değerinin birebir aynı olmamasını doğrudan hata olarak değerlendirmeyin.
20. Linux / Ubuntu üzerinde Xms ve Xmx ayarı
Linux'ta temel mantık aynıdır.
Örneğin:
java -Xms4G -Xmx8G -jar server.jar nogui
kullanılabilir.
Shell script içerisinde:
#!/bin/bash java -Xms4G -Xmx8G -jar server.jar nogui
şeklinde tanımlanabilir.
NeoForge kullanılıyorsa Linux'ta da:
user_jvm_args.txt
dosyasını kontrol etmek gerekebilir.
Sistemin RAM durumunu görmek için:
free -h
Java işlemlerini görmek için:
ps aux | grep java
veya:
pgrep -a java
kullanılabilir.
21. Windows ve Linux hızlı karşılaştırma
Windows Server:
java -version Get-Process java Get-CimInstance Win32_Process -Filter "Name='java.exe'" | Select-Object ProcessId,CommandLine
Linux / Ubuntu:
java -version free -h pgrep -a java
Her iki sistemde de RAM parametreleri aynı Java mantığıyla çalışır:
-Xms4G -Xmx8G
22. Hızlı RAM teşhis sırası
Minecraft sunucunuzda RAM problemi olduğunu düşünüyorsanız şu sırayla ilerleyebilirsiniz:
Toplam fiziksel RAM ne kadar? ↓ Windows ne kadar RAM kullanıyor? ↓ Java'ya verilen Xmx ne kadar? ↓ Java gerçekten ne kadar RAM kullanıyor? ↓ Başka Java işlemleri var mı? ↓ OutOfMemoryError var mı? ↓ Sorun RAM mi yoksa CPU / TPS kaynaklı mı?
Bu kontroller yapılmadan yalnızca RAM değerini yükseltmek doğru teşhis değildir.
23. Minecraft performansında RAM tek başına yeterli değildir
Minecraft sunucu performansı:
RAM + CPU + Disk + Java + Minecraft ayarları + Mod / plugin yükü + World yapısı
birlikte değerlendirilmelidir.
Özellikle yüksek oyunculu veya modlu Minecraft sunucularında güçlü tek çekirdek performansına sahip Ryzen işlemciler, yeterli RAM ve hızlı NVMe SSD kombinasyonu daha dengeli bir sunucu altyapısı oluşturabilir.
Batihost'ta sadece RAM vermiyoruz, Minecraft da biliyoruz.
Minecraft sunucunuz RAM tüketiyor, OutOfMemoryError veriyor, TPS düşüyor veya daha fazla RAM vermenize rağmen lag problemi çözülmüyorsa sorun yalnızca bellek miktarı olmayabilir.
Batihost olarak özellikle Windows VDS ve Minecraft sunucularında müşterilerimize yalnızca RAM, CPU ve disk kaynağı sunmakla kalmıyor; Java, Forge, NeoForge, modpack ve Minecraft sunucu problemlerinin doğru şekilde teşhis edilmesine de yardımcı oluyoruz.
Batihost Minecraft Sunucu ve Windows VDS hizmetlerini inceleyin
