Eğer özellikle bir Garbage Collector türü seçimi yapılmadı ise, 2 GB ve üzeri ve Windows işletim sistemi ile çalışmayan sunucularda JVM otomatik olarak paralel çalışan Garbage Collector’ü kullanıyor (-XX:UseParallelGC). Bu Garbage Collector sadece Young Generation üzerinde paralel, Old Generation için kullanılan Garbage Collector ise dizisel (serial) çalışıyor. Her iki heap alanında da paralel çalışan Garbage Collector’ü aktif hale getirmek için -XX=+UseParallelOldGC JVM parametresinin kullanılmasi gerekiyor. Bunu BizimAlem.com için çalışan uygulama sunucularından birinde denemek istedim. BizimAlem için JDK 1.5 kullanımda.
İkinci resimde görüldüğü gibi -XX:+UseParallelOldGC kullanıldığında JVM bir zaman sonra takılıp kalıyor ve çalışmaz hale geliyor. İlk denememde NewSize, SurvivorRatio gibi diğer parametrelerin hepsini deaktive edip, sadece -XX=+UseParallelOldGC parametresini kullanmıştım. Sonuç ikinci resimdeki gibi oldu. İlk önce yeni JVM ayarlarının sorun yarattığını düşündüm ve resim 1’de yer alan ayarlara geri döndüm. İkinci denememde de tekrar -XX=+UseParallelOldGC parametresini kullandım. Lakin ikinci denememde de JVM takılı kalıp, çalışmaz hale geldi. Buradan çıkardığımız sonuç: JDK 1.5 Update 12’de parallel Garbage Collector’ün bir bugı olsa gerek ;-)
EOF (End Of Fun)
Özcan Acar
İleri Java kategorisinden son yazılar
- Java 9 ile Modül Bazlı Yazılım - February 3rd, 2018
- JVM Nasıl Çalışır Yazı Serisi - Java Just In Time Compiler (JIT) Nasıl Çalışır? - May 14th, 2016
- JVM Nasıl Çalışır Yazı Serisi – JVM Stack Nedir ve Nasıl Çalışır? - January 8th, 2015
- JVM Nasıl Çalışır Yazı Serisi - Java Dilinde Neden Göstergeçler (Pointer) Yok? - December 30th, 2014
- JVM Nasıl Çalışır Yazı Serisi - Çalışan Bir Java Uygulamasında Bytekod Nasıl Değiştirilir? - November 2nd, 2014
- JVM Nasıl Çalışır Yazı Serisi - Java String Nesnelerinin Hafıza Kullanımı Nasıl Azaltılır? - September 18th, 2014
- Standart Java API’ler Neden Tercih Edilmeli? - April 6th, 2014
- JVM Nasıl Çalışır Yazı Serisi – Java Hotspot, Assembly Kod, Hafıza Bariyerleri ve Volatile Analizi - November 8th, 2013
- Java Generics Get ve Put Prensibi - January 30th, 2013
- Java'da Bilinmeyenler - July 8th, 2012