CI/CD 파이프라인에서 메모리 프로파일링을 모니터링하려면 다음 주요 측정항목을 추적해야 합니다.
1. 가비지 수집 처리량: 총 실행 시간 대비 가비지 수집 활동에 소요된 시간을 측정합니다. 값이 낮을수록 메모리 관리가 더 우수함을 나타냅니다[1].
2. 평균 가비지 수집 일시 중지 시간: 가비지 수집 중에 애플리케이션이 일시 중지되는 평균 시간을 측정합니다. 값이 낮을수록 애플리케이션 성능에 미치는 영향이 적다는 것을 의미합니다[1].
3. 최대 가비지 수집 일시 중지 시간: 가비지 수집 중에 애플리케이션이 일시 중지되는 최대 시간을 측정합니다. 값이 낮을수록 애플리케이션 성능에 미치는 영향이 적다는 것을 의미합니다[1].
4. 객체 생성 속도: 애플리케이션에서 객체가 생성되는 속도를 측정합니다. 값이 높을수록 메모리 누수 또는 비효율적인 메모리 사용을 나타낼 수 있습니다[1].
5. 최대 힙 크기: 애플리케이션에서 사용하는 최대 메모리 양을 측정합니다. 값이 높을수록 메모리 누수 또는 비효율적인 메모리 사용을 나타낼 수 있습니다[1].
6. 스레드 수: 애플리케이션의 활성 스레드 수를 측정합니다. 값이 높을수록 메모리 사용량이 증가했음을 나타낼 수 있습니다[1].
7. 스레드 상태: 다양한 상태(예: 실행 중, 휴면 중, 차단됨)에 걸친 스레드 분포를 측정합니다. 이는 메모리 관련 문제를 식별하는 데 도움이 될 수 있습니다[1].
8. 스레드 그룹: 애플리케이션의 스레드 그룹 수를 측정합니다. 값이 높을수록 메모리 사용량이 증가했음을 나타낼 수 있습니다[1].
9. Wasted Memory: 효율적으로 사용되지 않는 메모리의 양을 측정합니다. 값이 높을수록 메모리 누수 또는 비효율적인 메모리 사용을 나타낼 수 있습니다[1].
10. 객체 수: 애플리케이션의 총 객체 수를 측정합니다. 값이 높을수록 메모리 누수 또는 비효율적인 메모리 사용을 나타낼 수 있습니다[1].
11. 클래스 수: 애플리케이션의 클래스 수를 측정합니다. 값이 높을수록 메모리 사용량이 증가했음을 나타낼 수 있습니다[1].
이러한 지표를 추적하면 개발 수명 주기 초기에 메모리 관련 문제를 식별하고 메모리 사용을 최적화하여 효율적인 애플리케이션 성능을 보장할 수 있습니다.
인용:[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/