Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quelles sont les mesures clés à surveiller le profilage de la mémoire dans les pipelines CI / CD


Quelles sont les mesures clés à surveiller le profilage de la mémoire dans les pipelines CI / CD


Les mesures clés du profilage de la mémoire dans les pipelines CI / CD se concentrent principalement sur les performances détaillées de la collecte des ordures (GC) et des micro-métriques liées à la mémoire pour attraper les inefficacités de mémoire tôt et prévenir les problèmes de production. Ces mesures vont au-delà de la consommation générale de mémoire pour inclure des comportements au niveau micro qui peuvent indiquer des fuites de mémoire, des goulots d'étranglement ou une manipulation de mémoire inefficace. La surveillance de ces mesures permet d'améliorer les performances de l'application, une utilisation réduite du processeur et une détection de défaut proactive.

Collection des ordures (GC) Micro-métrics

1. Temps de pause GC moyen: Cette métrique mesure le temps moyen que l'application est interrompue lors de chaque événement de collecte des ordures. Des temps de pause plus faibles indiquent une meilleure réactivité de l'application car les pauses GC arrêtent temporairement le traitement d'application normal. Le suivi de ce sujet garantit que l'application maintient la réactivité pendant les cycles de nettoyage de la mémoire.

2. Temps de pause GC maximum: Il s'agit de la plus longue pause lors de tout événement de collecte des ordures observé. Les temps de pause maximum prolongés peuvent entraîner des retards d'application importants ou une non-réponse, signalant la nécessité de régler la configuration de GC ou d'étudier les problèmes de gestion de la mémoire.

3. Débit GC: représenté en pourcentage, cette métrique reflète le ratio du temps que l'application passe à faire un travail utile par rapport au temps passé dans la collecte des ordures. Des pourcentages de débit plus élevés signifient une gestion efficace de la mémoire avec un minimum de frais généraux induits par GC, indiquant de meilleures performances d'application.

4. Taux d'allocation d'objets: cela reflète le taux à laquelle les objets sont créés en mémoire, généralement mesurés en MB / seconde. Un taux d'allocation élevé peut induire des cycles GC fréquents, entraînant peut-être une augmentation du CPU et du stress mémoire. La surveillance aide à identifier les pointes soudaines qui pourraient dégrader les performances.

5. La consommation de processeur de GC: Étant donné que la collecte des ordures est à forte intensité de processeur, le suivi du temps de CPU alloué aux processus GC est essentiel. Une charge de CPU élevée de GC indique les inefficacités ou les besoins de réglage, avec des impacts potentiels sur les performances globales du système et le coût des ressources.

6. Fréquence GC: à quelle fréquence le collecteur des ordures fonctionne dans le pipeline. Des cycles GC fréquents peuvent signaler une allocation ou des fuites de mémoire excessive, conduisant à une dégradation potentielle des performances.

7. Comptage complet des événements GC: les événements GC complets sont plus chers et provoquent des pauses plus longues. La surveillance de la fréquence des GC complètes aide à identifier si la gestion de la mémoire doit être améliorée.

8. Empreinte mémoire après GC: Mesurer la quantité réelle de mémoire utilisée après qu'un événement GC reflète l'efficacité de la collecte des ordures et si des fuites de mémoire sont présentes.

Métriques d'utilisation de la mémoire

1. Utilisation du tas: suit la quantité de mémoire de tas utilisée dans le temps. L'augmentation des tendances d'utilisation du tas pourrait indiquer des fuites de mémoire ou une libération de mémoire inefficace.

2. Utilisation de la mémoire non taillée: comprend Metaspace et d'autres zones JVM non associées à un tas mais critique pour l'application. La surveillance des zones non tas peut identifier les points de pression de la mémoire à l'extérieur du tas.

3. Utilisation de la mémoire native: Pour les applications tirant parti de la mémoire native, le suivi de son utilisation peut empêcher l'épuisement de la mémoire.

4. Taux d'allocation de mémoire: taux auquel la mémoire est allouée et libérée par l'application, ce qui influence le comportement GC.

5. Débit d'erreur de mémoire: bien que souvent un événement rare, la surveillance de toute occurrence ou de risque d'OutofMemoryerror est essentielle pour éviter de placer des constructions ou des systèmes de production.

Mesures au niveau du système liées à la mémoire

1. Utilisation de l'échange: utilisation d'échange élevée signale l'épuisement de la mémoire sur l'hôte, dégradant les performances et impliquant un besoin de profilage de mémoire dans CI / CD.

2.

3. Taille de l'ensemble des résidents (RSS): partie de la mémoire occupée qui est maintenue en RAM; La surveillance de RSS aide à suivre la quantité de mémoire physique du processus consomme.

Intégration et seuils en CI / CD

- L'activation de la journalisation GC détaillée dans l'environnement CI / CD (par exemple, les arguments JVM pour les journaux GC) permet de capturer des métriques GC complètes lors des tests de performance.
- Ces journaux peuvent être analysés et analysés à l'aide d'outils ou d'API qui fournissent des informations et détectent des anomalies telles que de longues pauses GC, des GC excessifs complets ou une utilisation fluctuante de tas.
- Les seuils pour les mesures clés comme le temps de pause maximum GC, le temps de pause moyen et le débit GC peuvent être définis par application doivent échouer automatiquement les versions lorsque les limites sont dépassées, appliquant les normes de performance.
- Les seuils personnalisés sont importants car les besoins de la mémoire varient: les processus par lots tolèrent des pauses GC plus longues, tandis que les applications interactives nécessitent une latence très faible.

Considérations supplémentaires

- La surveillance des tendances au fil du temps est essentielle pour détecter les dégradations progressives de la mémoire, ce qui peut ne pas être évident dans les versions uniques.
- Corréler les mesures de mémoire avec d'autres mesures de pipeline telles que les taux de réussite de test et la création de durées pour comprendre les impacts sur la stabilité globale des pipelines.
- La collaboration entre le développement, l'AQ et les équipes d'opérations garantissent que les mesures de profilage de mémoire peuvent être exploitables et conduire à des améliorations.
- Intégrer le profilage de la mémoire dans les performances automatisées et les tests de charge dans le pipeline CI / CD pour attraper les problèmes tôt.

En résumé, les métriques clés du profilage de la mémoire dans les pipelines CI / CD tournent autour des indicateurs de performance détaillés de la collecte des ordures tels que les temps de pause moyenne et maximum, le débit GC, la fréquence et les coûts du processeur, ainsi que les métriques d'utilisation de la mémoire, y compris les tas d'utilisation du tas et non-talent, les taux d'allocation d'objets et les indicateurs de mémoire du système. Définir les seuils spécifiques à l'application et intégrer ces mesures à l'analyse automatisée prend en charge la détection proactive et la prévention des problèmes de performance liés à la mémoire dans les environnements de production.