7
votes

Java - meilleure façon de déterminer -xmx et -xms requis pour toute application WebApp et autonome

J'aimerais savoir comment déterminer la taille du tas requis pour une application autonome ainsi qu'un webApp en cours d'exécution sur un serveur Tomcat.

Comment déterminer la même chose après le déploiement sur le serveur.

Merci.


1 commentaires

-Xmx augmente, jusqu'à ce que aucune erreur de mémoire ne se produise et que l'utilisation de la CPU n'est pas dominée par le collecteur des ordures.


3 Réponses :


5
votes

Vous pouvez commencer par profiler l'utilisation de la mémoire. Le JDK (6 à la hausse) a son Visual VM par exemple. Un outil que je préfère personnellement est le analyseur de mémoire Eclipse , à l'origine de SAP, maintenant ouvert. Vous pouvez analyser les décharges de tas ou les raccrocher jusqu'à un processus Java de votre choix.

Pour créer des vidanges de tas de tas, vous pouvez utiliser Ceci


0 commentaires

1
votes

Nous utilisons le -xloggc: gc-log.txt et -xx: + printgcDétails sur la machine virtuelle et laissez-le courir pendant un moment (jours) avec hig Xmx paramètres, puis vous pouvez utiliser GCViewer pour rendre un diagramme à partir du journal et avoir une idée de quand Combien de RAM a été consommée, c'est-à-dire s'il y avait des pics, des limites atteintes, des charges de GC ralentissent l'application, etc.


0 commentaires

4
votes

règle suggéré par IBM pour dimensionnement du tas Java, c'est pour IBM SDK, mais je ne pense pas qu'il y aurait beaucoup de différence dans ces contextes pour les autres SDK.

Taille de votre tas Java afin que votre application fonctionne avec un tas minimum Utilisation de 40% et une utilisation maximale de 70%.


0 commentaires