Maison  >  Article  >  Opération et maintenance  >  Comment utiliser les outils de surveillance et d'analyse JVM dans UAVStack

Comment utiliser les outils de surveillance et d'analyse JVM dans UAVStack

PHPz
PHPzavant
2023-05-14 15:31:121529parcourir

Introduction

En tant que pile technologique de service intelligente d'AllInOne, UAVStack fournit une fonction d'échantillonnage de données de surveillance très complète et prend en charge la surveillance des données et l'alerte précoce. Récemment, nous avons intégré les fonctions originales de collecte et d'affichage des données, ajouté des fonctions d'analyse JVM et lancé un outil de surveillance et d'analyse JVM plus facile à utiliser.

Les développeurs qui connaissent JDK savent que JDK lui-même fournit un ensemble d'outils d'analyse JVM, notamment jinfo, jmap, jstack, etc. Les utilisateurs peuvent facilement obtenir des informations sur la pile mémoire JVM, l'allocation d'objets mémoire et des informations de base sur les paramètres de démarrage JVM via la ligne de commande. Cependant, ces outils doivent être exécutés dans un environnement de ligne de commande et, dans un environnement de production, ils doivent être transmis via l'hôte bastion.

Certains bons outils d'analyse JVM dans la communauté open source peuvent également fournir des fonctions telles que l'obtention d'informations JVM de base, le traçage de piles et l'obtention d'informations sur la mémoire, mais ils nécessitent également la prise en charge de la CLI de ligne de commande.

L'outil de surveillance et d'analyse JVM lancé par UAVStack fournit une méthode d'affichage basée sur des pages pour afficher graphiquement les données de surveillance collectées ; il fournit également des fonctions telles que l'acquisition des paramètres JVM de base, le vidage de la mémoire, l'analyse des threads, l'échantillonnage d'allocation de mémoire et le point chaud. analyse de la méthode.

1. Architecture

L'outil de surveillance et d'analyse JVM est basé sur l'architecture existante d'UAVStack et est divisé en framework d'amélioration front-end, back-end et middleware (MOF). Parmi eux :

  • Le front-end est responsable de l'affichage des données et de l'envoi des instructions d'exécution de l'utilisateur en arrière-plan ;

  • L'arrière-plan est responsable de l'émission des instructions, de la réponse aux requêtes des utilisateurs et du traitement des données collectées ;

    Le cadre d'amélioration du middleware (MOF) est responsable de recevoir les instructions émises par l'arrière-plan, d'exécuter les instructions et de renvoyer les données ou d'écrire les données dans un fichier, puis de télécharger les données via la fonction de collecte de fichiers fournie par UAV.
  • Le processus d'architecture global est illustré dans la figure ci-dessous :

2. Technologies clés Comment utiliser les outils de surveillance et danalyse JVM dans UAVStack

2.1 JMX

JMX fournit des interfaces pertinentes pour obtenir des données de surveillance de base de la JVM, telles que la taille du tas de mémoire, l'état du GC, etc. C'est la JVM La base de la surveillance des données.

2.2 Middleware Enhancement Framework (MOF)

En tant que base de l'ensemble du lien des outils d'analyse, MOF est attaché aux applications utilisateur et fournit principalement le support de base suivant :

Collecte de données de base : MOF est intégré dans l'application , JMX obtient et rapporte régulièrement des données d'informations de base sur les JVM pertinentes pour fournir une base de données pour l'affichage et l'alerte précoce.
  • Capture de requêtes, exécution de commandes : La plupart des fonctions des outils de surveillance et d'analyse JVM nécessitent l'émission de commandes vers le serveur sur lequel se trouve l'application. MOF est chargé d'intercepter les demandes d'émission d'instructions, de les exécuter et de renvoyer les résultats correspondants.
  • 2.3 API Java Attach
L'API Java Attach est un ensemble d'API non standard fournies par Sun, qui peuvent connecter les utilisateurs à un processus de machine virtuelle en cours d'exécution et effectuer des opérations telles que le montage d'agent.

Dans l'outil de surveillance et d'analyse JVM, l'API Java Attach est principalement utilisée pour s'attacher au processus de la machine virtuelle et effectuer les opérations suivantes :

Obtenir la connexion JMX : obtenez la connexion JVM de l'extérieur, obtenez le MXBean et récupérez les données en cours d'exécution. (Analyse d'échantillonnage du CPU)
  • Obtenir l'objet VirtualMachine : appelez l'interface pour obtenir les informations de distribution de la mémoire tas. (Analyse d'échantillonnage de mémoire)
  • 3. Affichage des fonctions
3.1 Surveillance de base

Après avoir sélectionné l'instance d'application, vous pouvez accéder à la page de surveillance de base.

Cette page affiche principalement l'utilisation du processeur, l'état des threads, l'utilisation de la mémoire et l'état du GC. Les utilisateurs peuvent ajuster la plage horaire en fonction des besoins et afficher les données de surveillance sur différentes périodes.

3.2 Résumé JVMComment utiliser les outils de surveillance et danalyse JVM dans UAVStack

La page Résumé JVM affiche les informations sur les paramètres de base de la machine virtuelle actuelle, y compris les informations de base, les paramètres JVM et les propriétés du système. Parmi eux :

Les informations de base incluent les informations les plus basiques et les plus importantes telles que le pid, les informations sur l'hôte, les paramètres de démarrage et l'heure de démarrage de la JVM ;
  • Les paramètres de la JVM incluent tous les paramètres de démarrage de la JVM et les utilisateurs peuvent afficher le tas spécifié ; taille, informations sur le garbage collector, etc. ;
  • Les propriétés système incluent toutes les informations de configuration écrites dans les propriétés de configuration System.Properties et Javaagent.

3.3 Analyse des threadsComment utiliser les outils de surveillance et danalyse JVM dans UAVStack

L'analyse des threads obtient des informations de base sur les threads en exécutant jstack et analyse les résultats de sortie pour obtenir des informations telles que le nombre d'états de thread et s'il y a un blocage.

3.4 Memory DumpComment utiliser les outils de surveillance et danalyse JVM dans UAVStack

Memory Dump obtient le fichier de vidage de pile de la JVM spécifiée en exécutant jmap.

Les utilisateurs peuvent facilement générer des dumps en un seul clic sur le front-end sans se connecter à la machine bastion. Cliquez sur "Actualiser" pour afficher les enregistrements récents des opérations de vidage de la mémoire.

3.5 Analyse du processeurComment utiliser les outils de surveillance et danalyse JVM dans UAVStack

L'analyse du processeur est basée sur l'analyse d'échantillonnage de la pile de threads, qui fournit principalement deux fonctions : le temps d'exécution du thread et l'échantillonnage des points chauds de la méthode.

  • Le temps d'exécution du thread fait référence au temps d'activité du thread pendant la période d'échantillonnage. Les résultats de la requête sont triés en fonction de la durée totale d'activité du thread, et les informations sur le nom du thread et le temps d'exécution du thread sont également fournies, afin que les utilisateurs puissent juger de l'état d'exécution de l'application.

Comment utiliser les outils de surveillance et danalyse JVM dans UAVStack

  • L'échantillonnage de points chauds de méthode compte le temps d'exécution de toutes les méthodes et fournit des informations sur le nom de classe et le nom de la méthode. Parmi eux, le temps d'auto-exécution d'une méthode n'inclut pas le temps d'exécution de la méthode appelant d'autres méthodes. Les résultats de la requête sont triés par ordre décroissant en fonction du temps d'auto-exécution de la méthode. Les utilisateurs peuvent visualiser les méthodes d'exécution les plus longues dans l'application actuelle pour déterminer si l'application est anormale et nécessite une optimisation.

Comment utiliser les outils de surveillance et danalyse JVM dans UAVStack

3.6 Analyse de la mémoire

L'analyse de la mémoire est basée sur une analyse d'échantillonnage statistique des threads et des tas. Elle fournit principalement deux fonctions : l'allocation de mémoire de chaque thread et les détails d'allocation de tas.

  • L'allocation de mémoire des threads fournit des informations telles que la taille de l'allocation de mémoire et le nom du thread de chaque thread, classés par ordre décroissant en fonction de la taille de l'allocation de mémoire. Les utilisateurs peuvent visualiser les threads occupant actuellement une grande quantité de mémoire.

Comment utiliser les outils de surveillance et danalyse JVM dans UAVStack

  • L'allocation dans le tas fournit le nombre d'instances allouées de chaque classe dans le tas et la mémoire du tas occupée, classées par ordre décroissant en fonction de la taille de la mémoire du tas. Les utilisateurs peuvent utiliser cette fonction comme un simple outil de vidage et d'analyse pour analyser rapidement l'allocation de mémoire et découvrir les problèmes d'allocation de mémoire.

Comment utiliser les outils de surveillance et danalyse JVM dans UAVStack

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer