J'ai définir les valeurs de PermSize et MaxPermSize en utilisant la variable JAVA_OPTS de tomcat comme ci-dessousPourquoi la valeur définie et la valeur réelle de PermSize et MaxPermSize sont-elles différentes?
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=512M"
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=512M"
et ont les valeurs de Xms et Xmx défini comme
JAVA_OPTS="$JAVA_OPTS -Xms1024M"
JAVA_OPTS="$JAVA_OPTS -Xmx1024M"
mais quand je vérifie la taille réelle perm-gen en utilisant la commande jmap -heap [id processus], ils apparaissent comme
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**
Pourquoi la distributio réelle n de l'espace permgen différent quand comparé à ce qui a été alloué en utilisant les attributs PermSize et MaxPermSize?
Informations complémentaires: la RAM de la machine linux sur lequel le serveur tomcat est installé est:
total used free shared buffers cached
Mem: 3089928 3006592 83336 0 67828 1874144
-/+ buffers/cache: 1064620 2025308
Swap: 1020088 112 1019976
Je suppose que vous avez simplement spécifié un nombre trop grand par rapport au tas total. Pourquoi voudriez-vous une moitié perm aussi grande que l'ensemble de votre tas? – biziclop
@praveen Quelle est la version de Java que vous utilisez? –
'17592186044415 MB' ??? – Thomas