L'Optimisation De Tomcat / La Collecte Des Ordures
Notre serveur dispose de 128 go de RAM et 64 cœurs, l'exécution de Tomcat 7.0.30 et Oracle jdk1.6.0_38, sur CentOS 6.3.
Toutes les 60 minutes, nous assistons à la collecte des ordures qui a été prise de 45 à 60 secondes. L'ajout d'-XX:-UseConcMarkSweepGC augmentation de temps de chargement de page par environ 10%, mais n'ai obtenu qu'en dessous de 3 secondes, ce qui est un compromis acceptable.
Notre config:
-Xms30g -Xmx30g -XX:PermSize=8g -XX:MaxPermSize=8g -Xss256k -XX:-UseConcMarkSweepGC
Nous avons mis en tas à 30 GO pour garder les 32 bits d'adressage (j'ai lu qu'au-dessus de 32 GO 64 bits d'adressage prend plus de mémoire, de sorte que vous devez aller pour environ 48 GO à voir des améliorations).
À l'aide de VisualGC je peux voir que l'Eden de l'espace est à vélo à travers toutes les 30 à 60 minutes, mais il ne se passe pas bien avec le Survivant 0, Survivant 1, Old Gen, et Perm Général.
Nous avons un serveur puissant. Ce que d'autres optimisations pouvons-nous faire pour réduire encore davantage le 3 deuxième GC temps?
Des recommandations pour améliorer les performances ou de mise à l'échelle?
Une autre sortie ou config info qui pourrait aider?
-XX:-UseConcMarkSweepGC
n'est-ce pas désactivé par défaut, peut-être que vous avez voulu dire pour l'allumer avec -XX:+UseConcMarkSweepGC
Cela ne fera aucune différence à l'eden de la taille, en tout cas.trouver où vous créez donc beaucoup d'objets et de voir où vous pouvez l'optimiser avec des piscines et/ou la mise en cache
Si vous voyez peu d'activité sur l'ancienne gen, pourquoi êtes-vous plein GCs. Je soupçonne que c'est déclenché lorsque vous n'en avez pas besoin.
Vous avez raison, c'était censé être un signe+. J'ai fait le switch, et le temps de chargement des pages a augmenté de 50%. Je n'ai pas vu combien de temps GC prend encore la. Les autres améliorations ont été à partir de notre commutateur de OpenJDK à l'Oracle JDK, et à partir de 36 GO tas de 30GO tas.
Le HotSpot de la documentation est un peu déroutant, à moins que vous lisez les petits caractères. Les options ne manquent pas de vous montrer comment activer les options sur, ils vous disent ce que l'option par défaut est. c'est à dire si vous les utilisez comme cité qu'ils ne devraient pas faire n'importe quoi. 😉
OriginalL'auteur user1517922 | 2012-12-13
Vous devez vous connecter pour publier un commentaire.
Il peut sembler contre-intuitif, mais avez-vous essayé d'allouer beaucoup moins de mémoire? E. g. avez-vous vraiment besoin d'une 30G de tas? Dans le cas où vous pouvez obtenir le long avec la 4G ou même moins: la collecte des Ordures pourraient être plus fréquents, mais quand il arrive, il sera beaucoup plus rapide. Généralement, je trouve cela plus souhaitable que d'allouer beaucoup de mémoire, la souffrance, depuis le temps qu'il faut pour le nettoyer.
Même si ce ne sera pas vous aider parce que vous vraiment besoin de 30G de mémoire, d'autres pourraient venir avec un problème similaire et qu'ils pourraient bénéficier de l'allocation de moins.
Dans le cas où l'-Xmx est réaliste, je tiens à recommander -Xmx être identique à -Xms: Si vous commencez avec 2G, mais la VM décide nuit de dimanche à 3h du matin qu'il veut pleinement allouer d'indemnité de la part de l'OS, mais ne parvient pas, vous obtiendrez un OOM en dépit de définir correctement le maximum. Au moins pour les systèmes de production c'est mon défaut recommandation. Pour le test, je serais d'accord avec vous.
Le comportement que vous décrivez pour les systèmes de production nécessite également vous ajoutez -XX:+AlwaysPreTouch, sinon paresseux répartition par votre système d'exploitation peut encore causer une surprise lorsque la JVM tente d'abord d'utiliser une section particulière de la tas.
Merci, @pauldoo. Je vais certainement avoir un regard et l'ajouter à la boîte à outils.
OriginalL'auteur Olaf Kock
Semble que vous avez besoin Différentiels GC afin de réduire les pauses:
et pour le suivi sans visualgc toujours, cela s'est bien passé pour moi (sortie de catalina.out):
Après vous pouvez jouer avec ce:
Référence: La Machine Virtuelle De Collecte Des Ordures Tuning
OriginalL'auteur ggrandes