-XX:MaxPermSize avec ou sans l'option-XX:PermSize
Nous avons exécuté dans un Java.lang.OutOfMemoryError: PermGen space erreur et en regardant le tomcat JVM params, autres que les -Xms
et -Xmx
params nous avons également spécifier -XX:MaxPermSize=128m
. Après un peu de profilage je vois parfois des ordures de la collection qui se passe sur le PermGen space sauver son exécution complète.
Ma question est: est autre que l'augmentation de la -XX:MaxPermSize
quelle serait la différence si je spécifie ainsi -XX:PermSize
? Je sais que la mémoire totale serait alors Xmx+maxPermSize mais est-il une autre raison pourquoi -XX:PermSize
devrait pas être là quand -XX:MaxPermSize
est-elle précisée?
S'il vous plaît partagez si vous avez de l'expérience du monde réel de traiter avec ces paramètres de la JVM.
ps. La machine JVM HotSpot 64 bit Server VM construire 16.2-b04
- vous devez vous préoccuper de la max seulement, des déchets, de l'énergie et de l'entropie b/c de cette question ne viendra jamais à proximité d'économie de "parfaitement" réglage de la jvm. maxPerGen est important et spécifier une valeur élevée arbitraire, la jvm coutume de s'engager avant il a réellement besoin.
Vous devez vous connecter pour publier un commentaire.
-XX:PermSize
spécifie la taille initiale qui sera allouée au démarrage de la JVM. Si nécessaire, la JVM va allouer jusqu'à-XX:MaxPermSize
.En jouant avec les paramètres que
-XX:PermSize
et-Xms
vous pouvez optimiser les performances de - par exemple - le démarrage de votre application. Je n'ai pas regardé récemment, mais a quelques années, la valeur par défaut de-Xms
était quelque chose comme 32 MO (je pense), si votre application exige beaucoup plus que cela engendrerait un nombre de cycles de remplissage de la mémoire - complet garbage collect - augmentation de la mémoire, etc jusqu'à ce qu'il avait chargé tout ce qu'il fallait. Ce cycle peut être préjudiciable pour les performances de démarrage, donc, immédiatement, l'attribution du nombre requis pourrait améliorer le démarrage.Un cycle similaire est appliquée à la génération permanente. Afin de réglage de ces paramètres peut améliorer de démarrage (entre autres).
AVERTISSEMENT La JVM a beaucoup de l'optimisation et de l'intelligence quand il s'agit de l'allocation de mémoire, en divisant l'eden de l'espace et les générations plus âgées, etc, afin de ne pas faire des choses comme faire
-Xms
égal à-Xmx
ou-XX:PermSize
égal à-XX:MaxPermSize
car il va supprimer certaines des optimisations de la JVM peut s'appliquer à ses stratégies de répartition et d'effet de réduire les performances de votre application au lieu de l'améliorer.Comme toujours: le non-trivial mesures de prouver que vos changements en fait d'améliorer les performances globales (par exemple l'amélioration du temps de démarrage pourrait être désastreux pour les performances lors de l'utilisation de l'application)
-Xms
égal à-Xmx
" commentaire n'est pas partagé par tous les utilisateurs. Tomcat recommande expressément à la même valeur. tomcatexpert.com/blog/2011/11/22/...Si vous êtes en train de faire quelque réglage des performances, il est souvent recommandé de définir à la fois
-XX:PermSize
et-XX:MaxPermSize
à la même valeur pour augmenterJVM
efficacité.Voici quelques informations:
Vous pouvez également spécifier
-XX:+CMSClassUnloadingEnabled
pour permettre à la classe de déchargementoption si vous utilisez
CMS
GC
. Il peut aider à diminuer la probabilité deJava.lang.OutOfMemoryError: PermGen space