Bellek: ne kadar ayırmalı ve neden hepsini değil
Paneldeki bellek grafiğini nasıl okuyacağın, kullanılan belleğin neden yetersizlik anlamına gelmediği ve ne zaman daha yüksek bir plana geçmenin zamanı geldiği.
13 Ağustos 2026 tarihinde güncellendi
Paneldeki bellek grafiği yeni başlayanları korkutur: neredeyse her zaman yüksektir. Bu, normal Java davranışıdır.
Nasıl okunur
Java belleği önceden ayırır ve yalnızca çöp toplama sırasında serbest bırakır. Grafikteki testere dişi — kullanımın yükselip toplamadan sonra keskin bir düşüş yaşaması — sağlıklı bir sunucunun işaretidir.
Sorun farklı görünür: çizgi tavana yapışır ve düşüşlerden sonra aşağı inmez. Bu, çöpün serbest bırakılmadığı anlamına gelir — ya bellek gerçekten çok azdır ya da bir sızıntı vardır.
Yetersizlik belirtileri
- Günlükte
OutOfMemoryError— analiz. - Çalışma süresi arttıkça büyüyen, birkaç saniyelik donmalar.
- Sunucu yeniden başlatmadan sonra sorunsuz çalışır ve akşama doğru kötüleşir.
Sızıntı
Tüketim doğrusal olarak artıyor ve düşmüyorsa, suçluyu ara:
spark heapsummary
Genellikle veri biriktiren bir eklenti ya da chunk yükleyicileri olan bir moddur — Spark.
Geçici bir önlem, günde bir kez otomatik yeniden başlatma. Kalıcı çözüm, suçluyu bulup güncellemektir.
Her şeyi ayırma
Heap'in yanı sıra sürecin üst veri, iş parçacığı ve arabellekler için belleğe, konteynerin de sistem için belleğe ihtiyacı vardır. Millida paneli, plana göre heap sınırlarını kendisi ayarlayarak bunu hesaba katar — elle dokunmana gerek yok.
Planını ne zaman değiştirmelisin
Normal çalışma sırasında tepe tüketim sürekli limite dayanıyorsa ve profilde sızıntı görünmüyorsa — Planını değiştirme.
