İçeriğe geç
Clodo

Java bellek ayarları: sunucu neden aniden kapanıyor (kod 137)

Minecraft sunucularında kod 137 ile ani kapanmaların nedenleri, Java bellek alanları ve topluluk kaynaklı bellek bayrağı önerileri.

Orta Seviye5 dkGüncellendi:4 Kasım 2026

Kısaca

  • Panel bellek sınırı sert bir konteyner sınırıdır; Java sürecinin toplam tüketimi bu sınırı aştığında sunucu aniden kapatılır ve konsolda kod 137 görünür.
  • Tüm panel belleğini -Xmx değerine ayırmak diğer Java bellek alanlarına pay bırakmaz ve ani kapanmaya yol açar.
  • Paketin başlatma değişkenlerini değiştirmeye izin veriyorsa bu bayrakları uygulayabilir, aksi halde destek talebi açabilirsin.

İhtiyacınız olanlar

  • Panel üzerinden konsol ve Başlatma (Startup) sekmesine erişim
  • Aktif bir Minecraft hizmeti

1. Kod 137 ve ani kapanmanın nedeni#

Panel bellek sınırı sert bir konteyner sınırıdır. Java sürecinin toplam kullanımı (heap, off-heap, metaspace ve thread bellekleri) bu sınırı aştığında sistem sunucuyu loglarda çoğu zaman hiçbir hata kaydı bırakmadan anında sonlandırır ve konsolda çıkış kodu 137 görünür. Başlatma komutunda -Xmx değerini panel sınırının tamamına eşitlemek Java'nın diğer bellek alanlarına hiç pay bırakmadığı için bu ani durmanın en yaygın nedenidir. Ayrıca -XX:MaxDirectMemorySize ayarlanmadığında Java doğrudan (off-heap) belleğin varsayılan olarak heap boyutuna kadar büyümesine izin verir ve ağ arabellekleri toplam kullanımı sınırın üzerine taşır. -XX:+AlwaysPreTouch bayrağı ise açılış anında belleği rezerve eder; heap sınırla eşit verildiğinde sunucunun ilk saniyelerde kapanmasına yol açabilir.

2. Topluluk tahminlerine göre bellek kuralları#

  • Topluluk tahminlerine göre -Xmx için kaba kurallar: 3 GB'a kadar olan sunucularda panel sınırından yaklaşık 800 MB boşluk bırakılır.
  • Topluluk tahminlerine göre 4-8 GB arası sunucularda panel sınırından yaklaşık 1.2-1.5 GB boşluk bırakılması önerilir.
  • Topluluk tahminlerine göre 10 GB ve üzeri sunucularda panel sınırının yaklaşık %80'i -Xmx olarak ayrılır.
  • Sık önerilen ek bayraklar: 3 GB'a kadar sunucularda -XX:MaxDirectMemorySize=256M, 4-8 GB için 512M, 10 GB ve üzerinde 1024M; doğrudan bellek değerinin çok küçük tutulması OutOfMemoryError: Direct buffer memory hatasına yol açabilir.
  • Metaspace için topluluk önerisi: -XX:MaxMetaspaceSize=256M.
  • Çok sayıda CPU çekirdeğine sahip makinelerde gereksiz ağ bellek havuzu oluşmasını önlemek için: -Dio.netty.allocator.numDirectArenas=2.
  • -XX:+AlwaysPreTouch bayrağı başlatma anında belleği önceden ayırır; sınırın tamamı heap olarak verildiğinde sunucunun ilk saniyelerde kapanmasına yol açabilir.

3. Bellek ayarlarını uygulama adımları#

1

Konsol ve kullanım grafiğini kontrol et

Panelde Konsol sekmesine git. Canlı kullanım grafiğini ve kapanma anındaki logları inceleyerek sunucunun hata mesajı vermeden kapanıp kapanmadığını ve kod 137 çıktısını kontrol et.

2

-Xmx değerini panel sınırının altına çek

Paketin başlatma değişkenlerini değiştirmeye izin veriyorsa sunucu boyutuna göre -Xmx değerini panel sınırının altına çekerek off-heap ve metaspace alanlarına pay bırak; aksi halde destek talebi açabilirsin.

3

Doğrudan bellek sınırını ekle

Ağ paketlerinin aşırı bellek tüketmesini engellemek için -XX:MaxDirectMemorySize bayrağını (örneğin 256M veya 512M) ve gerekirse -XX:MaxMetaspaceSize=256M parametresini ekle.

4

Sunucuyu yeniden başlat ve izle

Değişikliklerin devreye girmesi için sunucuyu yeniden başlat. Konsol grafiğinden toplam bellek kullanımının panel sınırının güvenli bir mesafede altında kaldığını gözlemle.

4. Bellek sorunları ve çözümleri#

Bellek kaynaklı sık karşılaşılan sorunlar

Belirti

Sunucu hata vermeden aniden duruyor (kod 137)

Sebep

Java sürecinin toplam bellek kullanımı paneldeki sert konteyner sınırını aşmıştır; en yaygın neden -Xmx değerinin tüm panel belleğine eşitlenmesidir

Çözüm

Paketin başlatma değişkenlerini değiştirmeye izin veriyorsa -Xmx değerini topluluk kurallarına göre panel sınırının altına çek; aksi halde destek talebi açabilirsin

Belirti

Konsolda OutOfMemoryError: Direct buffer memory hatası

Sebep

Doğrudan bellek sınırı (-XX:MaxDirectMemorySize) sunucunun ağ trafiği veya oyuncu yükü için yetersiz kalmıştır

Çözüm

Doğrudan bellek sınırını kademeli olarak yükselt (örneğin 256M yerine 512M) ve gereksiz ağ havuzlarını sınırlamak için -Dio.netty.allocator.numDirectArenas=2 bayrağını kullan

Bu rehber işinize yaradı mı?

Geri bildiriminiz doğrudan rehberi güncelleyen ekibe gider.

Çözüm bulamadınız mı?

Destek ekibimize panelden talep açabilirsiniz.

Destek talebi aç