2016-04-14 41 views
5

java 7 ile iyi çalıştığı bir java uygulamasına sahibim. Aşağıdaki dolandırıcılığa sahip java 8'e geçtikten sonra askıya almaya başladı.JVM, jdk1.8.0_74'e geçiş yaptıktan sonra kilitleniyor

-Xms3g -Xmx3g -verbose:gc -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:+PrintGCDateStamps 

Ben jstack dökümü almış ve tüm ipler yılında devlet BLOKE olduğunu göstermektedir. Ayrıca aşağıdaki bilgileri gösteren jmap dökümünü de aldım.

Birisi bu sorunu çözmemde bana yardımcı olabilir mi?

Attaching to process ID 2554, please wait... 
Debugger attached successfully. 
Server compiler detected. 
JVM version is 25.74-b02 

using thread-local object allocation. 
Garbage-First (G1) GC with 18 thread(s) 

Heap Configuration: 
    MinHeapFreeRatio   = 40 
    MaxHeapFreeRatio   = 70 
    MaxHeapSize    = 3221225472 (3072.0MB) 
    NewSize     = 1363144 (1.2999954223632812MB) 
    MaxNewSize    = 1932525568 (1843.0MB) 
    OldSize     = 5452592 (5.1999969482421875MB) 
    NewRatio     = 2 
    SurvivorRatio   = 8 
    MetaspaceSize   = 21807104 (20.796875MB) 
    CompressedClassSpaceSize = 1073741824 (1024.0MB) 
    MaxMetaspaceSize   = 17592186044415 MB 
    G1HeapRegionSize   = 1048576 (1.0MB) 

Heap Usage: 
G1 Heap: 
    regions = 3072 
    capacity = 3221225472 (3072.0MB) 
    used  = 2112667712 (2014.7969360351562MB) 
    free  = 1108557760 (1057.2030639648438MB) 
    65.58583776156108% used 
G1 Young Generation: 
Eden Space: 
    regions = 1665 
    capacity = 2024800256 (1931.0MB) 
    used  = 1745879040 (1665.0MB) 
    free  = 278921216 (266.0MB) 
    86.22475401346452% used 
Survivor Space: 
    regions = 5 
    capacity = 5242880 (5.0MB) 
    used  = 5242880 (5.0MB) 
    free  = 0 (0.0MB) 
    100.0% used 
G1 Old Generation: 
    regions = 349 
    capacity = 1191182336 (1136.0MB) 
    used  = 361545792 (344.79693603515625MB) 
    free  = 829636544 (791.2030639648438MB) 
    30.351842960841218% used 

18753 interned Strings occupying 1751224 bytes. 
+3

Sizin Eden alanınız oldukça yoğun ve Survivor Uzayınız dolu, bu oldukça normal - Old Gen oldukça boş. 1) baskı GC bayrakları ayarlanmış veya 2) VisualVM ekli olarak tekrar çalışırdım. –

+2

Herhangi bir bayrak ayarlanmamış mı? –

+0

Tam olarak uygulamanız mı yoksa bir kapsayıcıda mı çalışıyor? (Uygulama sunucusu, OSGi kapsayıcısı, ...) – gusto2

cevap

0

Değişikliklerin bir kodda büyük olasılıkla iplik güvenlik sorunu, bir iş parçacığı dökümü almak ve herhangi bir sorun nerede anlamak için dikkatlice analiz etmek gerekir. Linux 4 makinesinden Linux 6'ya (çoklu CPU ve çekirdeklere sahip çok güçlü bir makine) geçtiğimizde, geçmişte benzer bir kilitleme sorunu yaşadık. Daha hızlı makineler, bu uzun süreli diş açma ile ilgili programlama hatalarını açığa çıkarabilir.

İlgili konular