Tomcat consommer de l'utilisation élevée du PROCESSEUR
Tomcat.exe consomme 75% de l'UC.
Une personne n'ayant aucune idée de pourquoi il se produit et comment cela peut-il être diminué?
Je suis en utilisant Tomcat5.5 & J2SDK v 1.4.2_12
Lorsque je redémarre le serveur Tomcat, son mensonge à 10 - 15%, - je commencer à utiliser une application 'A', une fois utilisé plus de 5 à 6 fois le CPU arrêt à 60 - 70% et de ne jamais s'abaisse vers le bas. J'ai besoin de redémarrer le serveur. La même application est en cours d'exécution sur la Production de la boîte et sa ne créant pas de problème, mais sur l'UAT boîte, il est...
OriginalL'auteur Miral | 2009-04-22
Vous devez vous connecter pour publier un commentaire.
À comprendre ce qui se passe, vous devriez essayer de l'exécuter sous un profiler. Essayez le YourKit (http://www.yourkit.com/) ou Netbeans (http://profiler.netbeans.org/docs/help/5.5/profile_j2ee_profileproject.html).
La YourKit ont une meilleure intégration avec tomcat.
OriginalL'auteur J-16 SDiZ
Si vous êtes en utilisant 75% de CPU et ne comprends pas pourquoi, je vous propose d'émettre un kill -3 pour le tomcat processus (ctrl-break si vous avez une console) pour obtenir un thread dump (lorsque la charge est élevée!). Dans mon expérience, la plupart des threads doit être soit en veille ou io-attendre. Chercher toute seule branche de code qui a répété occurences dans les traces de la pile, et c'est votre probable (non-attente d'e /s!). C'est le "pauvre homme profiler" qui est assez souvent le meilleur et le plus efficace pour résoudre ces problèmes.
Merci @Frizz1977 🙂
OriginalL'auteur krosenvold
Sonde Lambda est un outil très pratique pour la surveillance de Tomcat.
Êtes-vous à l'aide d'un quad CPU système? Probablement Tomcat est en cours d'exécution de 100% dans 3 d'entre eux. Je voudrais d'abord tester une boucle infinie ou quelque chose comme ça dans une application.
OriginalL'auteur kgiannakakis
Mes journaux étaient pleins de Tomcat journaux. J'ai supprimé tous, et de l'utilisation de l'UC a augmenté de façon spectaculaire vers le bas.
OriginalL'auteur Murali
Tout d'abord (cela s'applique à toutes les applications java), vous devez fixer le thread qui est à l'aide de l'UC. Ceci est possible dans le JDK 1.6. Il est fait à l'aide de java.lang.de la gestion.ManagementFactory.getThreadMXBean().
Voici un exemple d'usage (JSP):
Après cela, vous pouvez obtenir un thread dump et analyser le code dans ce fil de correction excessive d'utilisation du PROCESSEUR.
OriginalL'auteur huksley
Toutes les réponses traitent de la manière de faire un diagnostic exact, en outre, je voudrais ajouter que, d'après mon expérience, une boucle infinie dans l'une de vos applications est probablement le coupable.
De J-16 SDiZ dit, votre meilleur pari est d'exécuter le générateur de profils pour réduire le problème à une seule application.
OriginalL'auteur James McMahon
Cela est probablement causé par la demande(s) en cours d'exécution sur le dessus du tomcat. Bien sûr, si vous avez de très fort trafic sur vos applications, ce qui pourrait aussi être la raison.
OriginalL'auteur Juha Syrjälä
Nous vient de résoudre un problème avec notre serveur tomcat instance en cours d'exécution avec une très forte utilisation du processeur, balancer jusqu'à 100% et de plus toutes les quelques secondes et ensuite brièvement de nouveau. Cela s'est produit tout au long de la journée et toute la nuit, si le serveur a été l'exécution de tout travail ou pas. Nous sommes en cours d'exécution de tomcat 8 avec java 8.
Nous n'avons pas trouvé notre solution dans une recherche sur le web, je suis donc de le poster ici dans l'espoir d'aider quelqu'un d'autre.
Nous avions utilisé l'option de configuration dans le fichier tomcat/conf/Catalina/localhost répertoire, dans lequel nous avons fait tomcat dans un autre répertoire, autre que son propre répertoire webapps. Les fichiers xml dans ce répertoire ressembler à ceci:
Et cela a fonctionné, tomcat a couru avec le code dans ces répertoires plutôt que de son propre répertoire webapps. Cependant, nous avons eu ce problème avec continuellement de fortification à l'utilisation de l'uc.
De test, nous avons supprimé les fichiers xml à partir de la conf/Catalina/localhost répertoire, et au redémarrage de tomcat. Soudain, nous avons eu une vie normale, bien éduqués tomcat de nouveau. Afin de souligner le tomcat pour cette autre répertoire (où nous compilons notre dspace code), nous avons simplement utilisé l'entrée de l'Hôte dans conf/server.xml et a changé le appBase paramètre à notre dspace répertoire:
Ce maintenant accomplit ce que nous voulions, avec une très faible utilisation du cpu (en dessous de 1%) lorsque le serveur est calme.
OriginalL'auteur excyberlabber