Les outils de supervision JVM dévoilés : Maîtrisez ces 5 outils pour vous aider à devenir architecte !
En tant que développeurs Java, nous rencontrons souvent des problèmes de réglage des performances et de dépannage. Dans le processus de résolution de ces problèmes, les outils de surveillance JVM sont un outil indispensable. Cet article présentera 5 outils de surveillance JVM couramment utilisés, qui peuvent nous aider à mieux comprendre l'état des performances des applications, à localiser rapidement les problèmes et à fournir des instructions fiables de réglage des performances.
1. jstat
jstat est un outil de ligne de commande léger fourni avec le JDK, utilisé pour surveiller et générer des statistiques JVM. Il peut fournir une mémoire tas en temps réel, des statistiques GC et d'autres informations sur les données. Nous pouvons vérifier l'état GC de l'application en exécutant la commande suivante :
jstat -gc <pid> <interval> <count>
Parmi elles, pid est l'ID de processus du processus Java cible, interval est l'intervalle entre la sortie des données (en millisecondes) et count est le nombre de les sorties. En observant la sortie de jstat, nous pouvons comprendre l'heure de chaque pause GC, l'état de chaque génération, etc. Sur la base de ces informations, nous pouvons déterminer s'il y a une fuite de mémoire et si la stratégie GC doit être ajustée, etc.
2. jstack
jstack est un outil de ligne de commande fourni avec le JDK. Il est utilisé pour imprimer les informations sur les threads du processus Java, y compris l'état des threads, la pile d'appels, etc. Cela peut nous aider à localiser rapidement des problèmes tels que des blocages et une utilisation élevée du processeur dans les applications.
Vous pouvez générer les informations de pile d'appels du thread via la commande suivante :
jstack <pid>
Où, pid est l'ID de processus du processus Java cible. Les informations de thread générées peuvent être sorties directement sur la console ou dans un fichier pour analyse. En analysant la pile d'appels des threads, nous pouvons comprendre la relation d'exclusion mutuelle entre les threads, la concurrence pour les ressources, etc., afin de mieux localiser le problème.
3. jmap
jmap est un outil de ligne de commande fourni avec le JDK, utilisé pour générer des fichiers de vidage de tas de processus Java. Un fichier de vidage de tas est un fichier binaire qui contient des informations sur tous les objets du tas Java. Nous pouvons générer un fichier de vidage de tas via la commande suivante :
jmap -dump:format=b,file=<dumpfile> <pid>
Où, dumpfile est le nom de fichier du fichier de vidage de tas généré et pid est l'ID de processus du processus Java cible. Après avoir généré un fichier de vidage de tas, vous pouvez utiliser des outils d'analyse de vidage de tas tels que MAT (Memory Analyzer Tool) pour l'analyse.
À l'aide de fichiers de vidage de tas, nous pouvons comprendre l'occupation des objets dans le processus Java actuel, les relations de référence des objets, etc. En analysant les fichiers de vidage de tas, nous pouvons découvrir des problèmes tels que des fuites de mémoire et des objets volumineux, et proposer des solutions de réglage correspondantes.
4. VisualVM
VisualVM est un outil de surveillance graphique JVM fourni avec le JDK. Il intègre jstat, jstack, jmap et d'autres outils, et peut fournir une analyse complète des performances et la localisation des problèmes. Nous pouvons afficher l'utilisation de la mémoire de l'application, l'état des threads, l'état du GC, etc. via l'interface graphique VisualVM.
VisualVM prend également en charge l'installation de divers plug-ins pour étendre ses fonctionnalités. Par exemple, vous pouvez installer le plug-in VisualGC pour surveiller l'état du GC, l'utilisation de la mémoire, etc. en temps réel.
5. Arthas
Arthas est l'outil de diagnostic Java open source d'Alibaba. Il fournit un riche ensemble de commandes et de fonctions qui peuvent diagnostiquer et déboguer les processus Java au moment de l'exécution. Il peut suivre les appels de méthode en temps réel, modifier dynamiquement les valeurs des variables et même effectuer un débogage au niveau du thread.
Arthas dispose d'une interface de ligne de commande de type Unix et prend en charge des fonctionnalités telles que l'achèvement des commandes et les invites automatiques. Grâce à l'interface de ligne de commande d'Arthas, vous pouvez visualiser l'exécution des méthodes en temps réel, analyser les goulots d'étranglement des performances et même effectuer le réglage des applications en temps réel.
Ce qui suit est un exemple d'utilisation d'Arthas pour le traçage de méthodes :
$ java -jar arthas-boot.jar
$ jad com.example.demo.DemoController index
$ trace com.example.demo.DemoController index
Ci-dessus sont 5 outils de surveillance JVM couramment utilisés. En maîtrisant ces outils, vous pouvez mieux comprendre et optimiser les performances des applications, localiser rapidement les problèmes et fournir des solutions stables et fiables. En tant qu’architecte, maîtriser ces outils vous rendra plus à l’aise au travail et deviendra un développeur efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!