Aby monitorować profilowanie pamięci w potokach CI/CD, należy śledzić następujące kluczowe wskaźniki:
1. Przepustowość usuwania śmieci: Mierzy ilość czasu spędzonego na działaniach usuwania śmieci w porównaniu do całkowitego czasu wykonania. Niższa wartość wskazuje na lepsze zarządzanie pamięcią[1].
2. Średni czas pauzy w usuwaniu śmieci: Mierzy średni czas wstrzymywania aplikacji podczas zbierania śmieci. Niższe wartości wskazują mniejszy wpływ na wydajność aplikacji[1].
3. Maksymalny czas pauzy w usuwaniu śmieci: Mierzy maksymalny czas wstrzymywania aplikacji podczas zbierania śmieci. Niższe wartości wskazują mniejszy wpływ na wydajność aplikacji[1].
4. Szybkość tworzenia obiektów: Mierzy szybkość tworzenia obiektów przez aplikację. Wyższe wartości mogą wskazywać na wycieki pamięci lub nieefektywne wykorzystanie pamięci[1].
5. Szczytowy rozmiar sterty: Mierzy maksymalną ilość pamięci wykorzystywanej przez aplikację. Wyższe wartości mogą wskazywać na wycieki pamięci lub nieefektywne wykorzystanie pamięci[1].
6. Liczba wątków: Mierzy liczbę aktywnych wątków w aplikacji. Wyższe wartości mogą wskazywać na zwiększone wykorzystanie pamięci[1].
7. Stany wątków: Mierzy rozkład wątków w różnych stanach (np. uruchomiony, uśpiony, zablokowany). Może to pomóc w zidentyfikowaniu problemów związanych z pamięcią[1].
8. Grupy wątków: Mierzy liczbę grup wątków w aplikacji. Wyższe wartości mogą wskazywać na zwiększone wykorzystanie pamięci[1].
9. Zmarnowana pamięć: Mierzy ilość pamięci, która nie jest efektywnie wykorzystywana. Wyższe wartości mogą wskazywać na wycieki pamięci lub nieefektywne wykorzystanie pamięci[1].
10. Object Count: Mierzy całkowitą liczbę obiektów w aplikacji. Wyższe wartości mogą wskazywać na wycieki pamięci lub nieefektywne wykorzystanie pamięci[1].
11. Liczba klas: Mierzy liczbę klas w aplikacji. Wyższe wartości mogą wskazywać na zwiększone wykorzystanie pamięci[1].
Śledząc te metryki, można zidentyfikować problemy związane z pamięcią na wczesnym etapie cyklu programowania i zoptymalizować wykorzystanie pamięci, aby zapewnić wydajną wydajność aplikacji.
Cytaty:[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/