BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Résolution Des Problèmes Des Applications Java Avec Eclipse Jifa

Résolution Des Problèmes Des Applications Java Avec Eclipse Jifa

Eclipse Jifa est un projet open source pour la résolution de problèmes des applications Java. Des solutions comparables s'exécutent souvent sur le client, où Jifa fournit une solution évolutive basée sur le Web pour éviter les problèmes de mémoire locale et de ressources. Actuellement, analyse de Heap Dump et analyse des Logs du GC sont prisent en charge avec des fonctionnalités telles que la vue d'ensemble du heap cible, les fuites suspectes, les informations sur les threads et l'analyse des GC root.

Vue 2.0 et Vert.x sont utilisés pour le frontend et le back-end, respectivement. Le pattern Master-Worker est utilisé et consiste en un ou plus Master(s) qui acheminent les requêtes du navigateur vers l'ensemble géré d'agents qui effectuent l'analyse. En fonction de la charge, le(s) Master(s) planifient des Workers supplémentaires.

Il existe plusieurs façons de déployer Eclipse Jifa : un seul worker, un master et plusieurs workers ou le modèle Kubernetes. La solution de planification Kubernetes utilise le Kubernetes Java Client pour créer des pods supplémentaires à la demande en fonction de l'utilisation des ressources.

Le moteur analytique comporte actuellement deux parties : le service Heap Dump Analysis basé sur Eclipse Memory Analyzer (MAT) et le service GC Log Analysis qui prennent en charge les algorithmes de ramasse-miettes G1, Parallel GC, Serial GC, CMS et ZGC. Le service GC Log Analysis peut traiter les journaux de Java 8 et 11, tandis que la prise en charge de Java 17 est en cours de développement.

L'environnement de démonstration en ligne peut être utilisé pour évaluer Eclipse Jifa, ou alternativement, une image Docker peut être utilisée pour exécuter rapidement Eclipse Jifa :

docker run -p 8102:8102 jifadocker/jifa-worker:demo

La page de démarrage s'affiche après avoir navigué sur http://localhost:8102 :

Après avoir cliqué sur Add Heap Dump File, diverses options sont présentées pour fournir le fichier du heap dump. L'application attend un fichier .hprof qui contient le heap dump d'une application Java. La commande jcmd fournie par le JDK est l'une des options pour créer le heap dump :

jcmd [pid] GC.heap_dump [location to store the hprof file]

Après avoir ajouté le heap dump, il s'affiche sur la page et un clic sur analyze lance l'analyse.

Une fois l'analyse terminée, un aperçu des résultats s'affiche. Cliquer sur la partie bleue de l'anneau affiche l'aperçu suivant :

Il existe différentes Vues disponibles dans Eclipse Jifa pour analyser plus en détail le heap dump. Le Dominator Tree montre qu'un grand pourcentage du heap provient d'un Thread, lors de l'exploration de l'objet School, une ArrayList et de nombreux objets String longs sont affichés. En effet, le heap dump est créé à partir d'une application de démonstration qui stocke des objets String longs et aléatoires dans une ArrayList située dans un objet School.

L'analyse du heap dump d'Eclipse Jifa, basée sur Eclipse MAT, fournit des informations détaillées sur l'analyse des heap dumps.

La deuxième fonctionnalité d'Eclipse Jifa est l'analyse du journal du ramasse-miettes . Après avoir cliqué sur GC Log Analysis puis sur Add GC Log File, diverses options sont présentées pour fournir le fichier journal du ramasse-miettes. La commande suivante est l'une des options permettant de créer un journal du ramasse-miettes :

java -Xlog:gc*=debug:file=[log file location] -jar [jar location]

Après avoir fourni le fichier journal et terminé l'analyse, un aperçu s'affiche :

Les différents onglets fournissent des informations plus détaillées, à commencer par l'onglet Graphs qui affiche des statistiques telles que le nombre de garbage collections, les temps de pause et la taille du heap :

L'onglet GC Cause And Phase affiche les causes d'une garbage collection et des informations plus détaillées sur la durée des pauses :

Le dernier onglet GC Detail fournit tous les détails, où les lignes affichent les informations suivantes :

Alibaba Cloud, Netflix et d'autres membres de la communauté open source contribuent à Eclipse Jifa, actuellement en phase d'incubation et publié en tant que version 0.1. L'équipe travaille à faire passer le projet à la phase Mature.

Sanhong Li, Java Champion et co-leader du GreenTea JUG, et Denghui Dong, Committer sur OpenJDK, tous deux d'Alibaba Cloud, ont fourni plus d'informations sur le Projet Eclipse Jifa lors de leur session à la conférence jChampions 2022.

 

Au sujet de l’Auteur

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT