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 Microsoft Open-Source GCToolkit Pour Exploiter Les Logs Du GC De La JVM

Microsoft Open-Source GCToolkit Pour Exploiter Les Logs Du GC De La JVM

L'empreinte de Microsoft dans l'écosystème Java s'est généralisée. Ce qui a commencé avec Java on Azure et la prise en charge de Minecraft, Microsoft continue avec divers outils ciblés pour rendre la Java Machine virtuelle (JVM) plus accessible et améliorer l'expérience de développement pour les développeurs Java. Le dernier ajout à cette collection est l'open source de GCToolkit début août 2021. Comme son nom l'indique, il s'agit d'un ensemble de bibliothèques permettant d'examiner les fichiers de logs du ramasse-miettes Java (GC) et de les analyser en événements distincts. Il expose une API pour une meilleure interaction avec la boîte à outils et l'agrégation de données. Cela permet à l'utilisateur de créer des analyses complexes arbitraires de l'état de la mémoire gérée de la JVM. C'est le point d'entrée de l'utilisateur dans le GCToolkit qui masque les détails des modules internes dans quelques appels de méthode.

Outre l'API, il existe deux autres modules : l'analyseur et le module Vert.x. Le module analyseur est basé sur une collection d'expressions régulières et de code écrit sur de nombreuses années pour être considéré comme l'analyseur de logs de GC le plus robuste disponible. Le backend de messagerie basé sur Vert.x utilise deux bus de messages : le premier diffuse des données à partir d'une source de données. La mise en œuvre actuelle diffuse les lignes de log à partir du fichier de log du GC. Les consommateurs de ce bus sont les analyseurs qui convertissent les données de la source de données en événements qui représentent soit un cycle GC, soit un point de sécurité. Ces événements sont publiés sur le deuxième bus de messages : le bus d'événements. Les abonnés sur le bus d'événements peuvent alors être notifiés et traiter les événements qui les intéressent.

L'analyseur émet des événements JVM distincts (événements de cycle GC ou événements de type save point) qui permettent d'écrire du code pour capturer et analyser les données de ces événements. Afin de faciliter la capture et l'analyse des données des fichiers de logs du GC, GCToolkit fournit un framework d'agrégation simple. Le type de données que les utilisateurs souhaitent capturer ou le type d'analyse que les utilisateurs souhaitent effectuer est à la discrétion de l'utilisateur. Par exemple, pour capturer des événements de pause dans le but d'analyser l'occupation du tas, l'agrégateur capture l'événement, extrait les données pertinentes et transmet les données à l'agrégation. Cela rassemble les données dans une analyse significative, par exemple, l'occupation totale du tas après la récupération de mémoire. Les données résultantes pourraient être rendues sous forme de graphique, de tableau ou d'un autre format plus convivial.

Plus important encore, on sait depuis longtemps qu'une configuration sous-optimale du ramasse-miettes entraînera une application nécessitant plus de CPU et de mémoire tout en dégradant l'expérience de l'utilisateur final. En d'autres termes, mal réglé équivaut souvent à un temps d'exécution plus coûteux et à des utilisateurs mécontents. Le défi est que pour régler de manière optimale le GC, il faut créer un équilibre délicat entre plusieurs problèmes qui ne sont pas facilement visibles sans l'aide de l'outillage. GCToolKit est utile pour rendre cela plus facile.

Le GCToolkit a été construit autour du module d'analyseur - une collection d'expressions régulières et de code qui a évolué au cours de nombreuses années, devenant un analyseur de logs de GC robuste.

Avec l'intérêt croissant de Microsoft pour l'écosystème Java, l'accent mis sur l'open source augmente également les avantages pour la communauté Java. Après des contributions majeures apportées au portage sur macOS M1 et au portage Windows sur Arm, Microsoft a réaffirmé son engagement envers OpenJDK lorsqu'il a présenté sa propre version OpenJDK et a rejoint le Groupe de travail Eclipse Adoptium (anciennement AdoptOpenJDK).

En rendant open source le GCToolkit, Microsoft essaie de fournir un meilleur moyen de visualiser les détails internes de la JVM sur la façon dont il gère le GC et l'allocation de mémoire. Une visibilité améliorée s'accompagne d'un peaufinage amélioré qui profite à la fois aux utilisateurs finaux de l'application, mais également au personnel technique mandaté pour la gérer. L'API simple et les mécanismes de sortie conviviaux promettent d'améliorer la corvée de lecture des logs de GC en fournissant divers mécanismes pour analyser, extraire et visualiser les données.

 

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT