2016-03-30 9 views
3

Ich habe die Werte von PermSize und MaxPermSize mit JAVA_OPTS Variable von tomcat wie untenWarum ist der eingestellte und tatsächliche Wert von PermSize und MaxPermSize unterschiedlich?

JAVA_OPTS="$JAVA_OPTS -XX:PermSize=512M" 
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=512M" 

und die Werte von Xms und Xmx eingestellt als

JAVA_OPTS="$JAVA_OPTS -Xms1024M" 
JAVA_OPTS="$JAVA_OPTS -Xmx1024M" 

aber wenn ich überprüfen die tatsächliche Größe perm-gen den Befehl jmap -heap [Prozess-ID] mit erscheinen sie als

Heap Configuration: 
    MinHeapFreeRatio = 40 
    MaxHeapFreeRatio = 70 
    MaxHeapSize  = 792723456 (756.0MB) 
    NewSize   = 1310720 (1.25MB) 
    MaxNewSize  = 17592186044415 
    OldSize   = 5439488 (5.1875MB) 
    NewRatio   = 2 
    SurvivorRatio = 8 
    **PermSize   = 21757952 (20.75MB)** 
    **MaxPermSize  = 85983232 (82.0MB)** 
    G1HeapRegionSize = 0 (0.0MB) 


Perm Generation: 
    **capacity = 69271552 (66.0625MB)** 
    **used  = 69247376 (66.03944396972656MB)** 
    **free  = 24176 (0.0230560302734375MB)** 
    **99.96509967035242% used** 

Warum die tatsächliche allocatio ist n des Permgenraums anders, wenn mit den Attributen PermSize und MaxPermSize abgestimmt wurde?

Zusatzinfo: Der RAM-Speicher der Linux-Rechner, auf dem der Tomcat-Server installiert ist:

   total  used  free  shared buffers  cached 
Mem:  3089928 3006592  83336   0  67828 1874144 
-/+ buffers/cache: 1064620 2025308 
Swap:  1020088  112 1019976 
+0

Ich würde vermuten, dass Sie einfach eine zu große Zahl im Vergleich zum gesamten Heap angegeben. Warum sollten Sie eine Dauerwelle haben, die halb so groß ist wie Ihr gesamter Haufen? – biziclop

+0

@praveen Was ist die Java-Version, die Sie verwenden? –

+0

'17592186044415 MB' ??? – Thomas

Antwort

1

Die setenv.sh Datei während der Jenkins bauen und diese Datei wurde Beschaffung der benutzerdefinierten Konfigurationen verpasst wurde von tomcat.env verursacht das Problem.