Για να παρακολουθείτε το προφίλ μνήμης σε αγωγούς CI/CD, θα πρέπει να παρακολουθείτε τις ακόλουθες βασικές μετρήσεις:
1. Garbage Collection Throughput: Αυτό μετρά τον χρόνο που αφιερώνεται σε δραστηριότητες συλλογής σκουπιδιών σε σύγκριση με τον συνολικό χρόνο εκτέλεσης. Μια χαμηλότερη τιμή υποδηλώνει καλύτερη διαχείριση μνήμης[1].
2. Μέσος χρόνος παύσης συλλογής σκουπιδιών: Μετράει τον μέσο χρόνο παύσης της εφαρμογής κατά τη συλλογή απορριμμάτων. Οι χαμηλότερες τιμές υποδηλώνουν μικρότερο αντίκτυπο στην απόδοση της εφαρμογής[1].
3. Μέγιστος χρόνος παύσης συλλογής σκουπιδιών: Μετρά τον μέγιστο χρόνο παύσης της εφαρμογής κατά τη συλλογή απορριμμάτων. Οι χαμηλότερες τιμές υποδηλώνουν μικρότερο αντίκτυπο στην απόδοση της εφαρμογής[1].
4. Ρυθμός δημιουργίας αντικειμένων: Αυτό μετρά τον ρυθμό με τον οποίο δημιουργούνται αντικείμενα από την εφαρμογή. Οι υψηλότερες τιμές μπορεί να υποδηλώνουν διαρροές μνήμης ή αναποτελεσματική χρήση μνήμης[1].
5. Μέγεθος μέγιστου σωρού: Αυτό μετρά τη μέγιστη ποσότητα μνήμης που χρησιμοποιείται από την εφαρμογή. Οι υψηλότερες τιμές μπορεί να υποδηλώνουν διαρροές μνήμης ή αναποτελεσματική χρήση μνήμης[1].
6. Αριθμός νημάτων: Αυτό μετρά τον αριθμό των ενεργών νημάτων στην εφαρμογή. Οι υψηλότερες τιμές μπορεί να υποδηλώνουν αυξημένη χρήση μνήμης[1].
7. Κατάσταση νημάτων: Αυτό μετρά την κατανομή των νημάτων σε διαφορετικές καταστάσεις (π.χ. τρέχει, αδράνεια, μπλοκαρισμένο). Αυτό μπορεί να βοηθήσει στον εντοπισμό ζητημάτων που σχετίζονται με τη μνήμη[1].
8. Ομάδες νημάτων: Αυτό μετρά τον αριθμό των ομάδων νημάτων στην εφαρμογή. Οι υψηλότερες τιμές μπορεί να υποδηλώνουν αυξημένη χρήση μνήμης[1].
9. Χατωμένη μνήμη: Μετρά την ποσότητα της μνήμης που δεν χρησιμοποιείται αποτελεσματικά. Οι υψηλότερες τιμές μπορεί να υποδηλώνουν διαρροές μνήμης ή αναποτελεσματική χρήση μνήμης[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/