Yıllar boyunca, +UseParallelOldGC
'u kullanarak mütevazı yığın boyutlarıyla Java hizmetleri çalıştırıyoruz. Şimdi, daha büyük bir yığın ve G1 toplayıcı kullanarak yeni bir hizmet sunmaya başlıyoruz. Bu oldukça iyi gidiyor.Java G1: Üretimde bellek sızıntılarının izlenmesi
+UseParallelOldGC
kullanan hizmetlerimiz için, bir eşik üzerinde toplama ve uyarı yapıldıktan sonra eski nesil boyutuna bakarak bellek sızıntılarını izleriz. Bu oldukça iyi çalışıyor ve aslında iki hafta önce pastırmamızı kurtardı.
ManagementFactory.getMemoryPoolMXBeans()
- adı
"Old Gen"
biten ileMemoryPoolMXBean
sonucu aragetMax()
getCollectionUsage().getUsed()
karşılaştırın:
Özellikle, +UseParallelOldGC
için, biz aşağıdakileri yapın
Maalesef G1'in artık 012 konseptine sahip olmadığı anlaşılıyor.. Bununla birlikte, temel olarak, karışık bir döngüde ya da benzer bir şekilde yapmayı seçtiği son karma koleksiyonu takiben G1 yığın boyutunu izlemek isteriz.
Örneğin, VM dışında Ben sadece son '(mixed)'
bir '(young)'
izledi ve son yığın boyutu ne görünecek edildi bulunan bir awk komut dosyası ile mutlu olurdu (örneğin '1540.0M' 'Heap: 3694.5M(9216.0M)->1540.0M(9216.0M)'
)
var mı uygulanıyor Java VM içinde bunu yapmanın yolu nedir?
bu, benzer bilgiler sağlamalıdır: http://stackoverflow.com/a/ 32509813/1362755 – the8472