La version 1.6 de Java JDK outil, VisualVM
Quelqu'un a utilisé la nouvelle version 1.6 de Java JDK outil, VisualVM, le profil d'une application de production, et quelle est l'application tout en étant profilée?
La documentation dire qu'il est conçu à la fois pour la Production et le Développement de l'utilisation, mais sur la base de précédentes profilage de l'expérience, avec d'autres outils de profilage, je suis hésitant.
OriginalL'auteur Kevin | 2008-09-16
Vous devez vous connecter pour publier un commentaire.
Alors que je n'ai personnellement pas utilisé VisualVM, j'ai vu ce post de blog juste aujourd'hui que pourrait avoir quelques informations utiles pour vous. Il parle de profilage de production de l'app de l'utiliser.
OriginalL'auteur BenCourliss
Je l'ai essayé sur une boîte de dev et a constaté que lorsque j'ai éteint le profilage il fermerait Tomcat vers le bas de façon inattendue. Je serais très prudent à propos de les déployer à la production - pouvez-vous simuler la charge dans un environnement de test à la place? Ce n'est pas aussi bonne que la vraie chose, mais il ne sera probablement pas te faire virer si ça se passe mal...
OriginalL'auteur Tim Howland
J'ai utilisé VisualVM avant de profil quelque chose exécuté localement. Une grande victoire a été que je viens de commencer, et il peut se connecter à l'exécution de la JVM. Il est plus facile à utiliser que les autres outils de profilage, j'ai utilisé avant et ne semblent pas avoir autant de frais généraux.
Je pense qu'il ne l'échantillonnage. La surcharge sur un CPU intensive application ne semble pas significative. Je n'ai pas de mesurer quoi que ce soit (j'ai été intéressé par la façon dont mon application réalisée, non pas comment l'outil), mais il n'a certainement pas le facteur de 10 ralentissement je suis habitué à voir de profilage.
OriginalL'auteur Kevin Peterson
Juste pour le suivi de votre demande, l'exécution de VisualVM à distance ne devraient pas ralentir beaucoup. Si le système n'est pas au bord de l'effondrement, je n'ai pas encore vu tous les problèmes. Il est fondamentalement juste la lecture des informations à partir du grain grossier intégré dans l'instrumentation de la JVM. Si vous démarrez le profilage, cependant, vous aurez les mêmes problèmes qu'avec les autres profileurs. Fondamentalement, car ils travaillent tous près de la même manière, souvent à l'aide de la prise en charge dans la JVM.
Beaucoup de gens ont des problèmes avec l'exécution de VisualVM à distance, en raison de problèmes de pare-feu, mais vous pouvez même exécuter Visual VM à distance via ssh, avec certaines propriétés du système de jeu.
OriginalL'auteur hennings
Il est possible de se connecter à distance à votre serveur à partir d'un autre ordinateur à l'aide de VisualVM. Vous avez juste besoin de faire un clic droit sur le "à Distance" nœud et de dire "Ajouter un Hôte Distant."
Ce serait au moins éliminer les VisualVM, les frais généraux (si elles existent) à partir d'impact sur la performance en cours d'exécution.
Cela ne peut pas éliminer tous les soucis de performance, en particulier dans les environnements de Production, mais il aidera un peu.
OriginalL'auteur Matt N
J'ai utilisé le Net Beans profiler, qui utilise les mêmes fondements que Visual VM.
Je travaillais avec une version plus ancienne de Weblogic, ce qui signifie l'utilisation de la JVM 1.5, donc je ne pouvais pas faire une dynamique attacher. L'application j'ai été profilage avait plusieurs milliers de classes et de mon poste de travail était à peu près inutilisable pendant le profiler instrumentés de tous. Une fois que l'instrumentation est complète, le système était lent, mais pas complètement inutilisable. Le montant de ralentissement dépend vraiment de ce que vous avez besoin pour capturer. La base de PROCESSEUR mesures sont assez légers. Le profilage de la mémoire allocation ralentit les choses beaucoup.
Je ne voudrais pas l'utiliser sur un système de production. Outre le potentiel de ralentissement, j'ai finalement couru hors de la PermGen space parce que le profiler reinstruments et recharge de classes lorsque vous modifiez les paramètres. (Cela peut être corrigé en 1.6 agent, je ne sais pas)
OriginalL'auteur gibbss
J'ai été en utilisant VisualVM beaucoup depuis avant il a été inclus dans le JDK. Il a un impact négligeable sur les performances du système. Je n'ai jamais remarqué qu'il cause un problème à l'exécution sur le système, mais encore une fois, notre serveur Java eu assez de marge à l'époque pour appuyer un peu plus de charge. Si votre serveur est en cours d'exécution à un niveau qui est complètement viré et ne peut pas gérer la VisualVM en cours d'exécution, alors je dirais que sa plus probable que vous avez besoin d'acheter un autre serveur . Tout serveur de production devrait avoir un peu de mémoire de la marge , sinon ce que vous avez est une catastrophe juste en attente de se produire.
OriginalL'auteur djangofan
J'ai utilisé la PCV(VavaVoom?) assez largement, fonctionne comme un charme dans le mode d'éclairage, c'est à dire pas de profilage, juste obtenir les données de base de la machine virtuelle. Mais une fois que vous commencez le profilage et il y a beaucoup de classes, puis il ya beaucoup de ralentissement. Je n'aurais pas de profil dans un environnement de production, même si vous avez 128 core avec 2 tera de mémoire purement parce que le rechargement et la re-définition des classes difficiles, le serveur de chargeurs de classes sont une autre chose, également varier d'un serveur de mise en œuvre à l'autre, interférer avec eux dans la production n'est pas une très bonne idée.
OriginalL'auteur Michael