Um die Speicherprofilierung in CI/CD-Pipelines zu überwachen, sollten Sie die folgenden Schlüsselmetriken verfolgen:
1. Garbage-Collection-Durchsatz: Dies misst die Zeit, die für Garbage-Collection-Aktivitäten im Vergleich zur gesamten Ausführungszeit aufgewendet wird. Ein niedrigerer Wert weist auf eine bessere Speicherverwaltung hin[1].
2. Durchschnittliche Pausenzeit der Garbage Collection: Dies misst die durchschnittliche Zeit, die die Anwendung während der Garbage Collection pausiert. Niedrigere Werte weisen auf eine geringere Auswirkung auf die Anwendungsleistung hin[1].
3. Maximale Garbage Collection-Pausezeit: Dies misst die maximale Zeit, die die Anwendung während der Garbage Collection pausiert. Niedrigere Werte weisen auf eine geringere Auswirkung auf die Anwendungsleistung hin[1].
4. Objekterstellungsrate: Dies misst die Rate, mit der Objekte von der Anwendung erstellt werden. Höhere Werte können auf Speicherlecks oder eine ineffiziente Speichernutzung hinweisen[1].
5. Peak Heap Size: Dies misst die maximale Speichermenge, die von der Anwendung verwendet wird. Höhere Werte können auf Speicherlecks oder eine ineffiziente Speichernutzung hinweisen[1].
6. Thread-Anzahl: Dies misst die Anzahl der aktiven Threads in der Anwendung. Höhere Werte können auf eine erhöhte Speichernutzung hinweisen[1].
7. Thread-Zustände: Dies misst die Verteilung von Threads über verschiedene Zustände (z. B. ausgeführt, im Ruhezustand, blockiert). Dies kann dabei helfen, speicherbezogene Probleme zu erkennen[1].
8. Thread-Gruppen: Dies misst die Anzahl der Thread-Gruppen in der Anwendung. Höhere Werte können auf eine erhöhte Speichernutzung hinweisen[1].
9. Verschwendeter Speicher: Dies misst die Menge an Speicher, die nicht effizient genutzt wird. Höhere Werte können auf Speicherlecks oder eine ineffiziente Speichernutzung hinweisen[1].
10. Objektanzahl: Dies misst die Gesamtzahl der Objekte in der Anwendung. Höhere Werte können auf Speicherlecks oder eine ineffiziente Speichernutzung hinweisen[1].
11. Klassenanzahl: Dies misst die Anzahl der Klassen in der Anwendung. Höhere Werte können auf eine erhöhte Speichernutzung hinweisen[1].
Durch die Verfolgung dieser Metriken können Sie speicherbezogene Probleme frühzeitig im Entwicklungslebenszyklus erkennen und die Speichernutzung optimieren, um eine effiziente Anwendungsleistung sicherzustellen.
Zitate:[1] https://blog.heaphero.io/2018/07/10/micrometrics-for-ci-cd-pipeline/
[2] https://www.linkedin.com/pulse/cicd-pipeline-metrics-palani-thiyagarajan
[3] https://thenewstack.io/using-dora-metrics-to-optimize-ci-pipelines/
[4] https://docs.gitlab.com/ee/user/analytics/ci_cd_analytics.html
[5] https://codilime.com/blog/continuous-monitoring-and-observability-in-devops/