Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon CI/CD hattımda ortalama çöp toplama duraklama süresini nasıl azaltabilirim


CI/CD hattımda ortalama çöp toplama duraklama süresini nasıl azaltabilirim


CI/CD kanalınızda ortalama çöp toplama duraklatma süresini azaltmak için şu adımları takip edebilirsiniz:

1. Çöp Toplama Ayarlarını Optimize Edin:

- Genç Nesil Boyutunu Artırın:
- Çöp toplama sıklığını azaltmak için genç nesil sayısını artırmak.
- Bu, JVM bağımsız değişkeni `-Xmn` veya `-XX:NewRatio` ayarlanarak yapılabilir.

- Çöp Toplama Aralığını Ayarlayın:
- Duraklatma süresini azaltmak için çöp toplama aralığını ayarlayın.
- Bu, JVM bağımsız değişkeni `-Dsun.rmi.dgc.server.gcInterval` veya `-Dsun.rmi.dgc.client.gcInterval` ayarlanarak yapılabilir.

2. Çöp Toplamanın İzlenmesi ve Analiz Edilmesi:

- Çöp Toplama Profil Oluşturucularını kullanın:
- Çöp toplamayı izlemek ve analiz etmek için JProfiler, YourKit veya JVisualVM gibi araçları kullanın.
- Bu araçlar bellek sızıntılarının belirlenmesine, nesne oluşturma hızlarının optimize edilmesine ve çöp toplama duraklama sürelerinin azaltılmasına yardımcı olabilir.

3. Nesne Oluşturma Hızlarını Optimize Edin:

- Nesne Oluşturmayı Azaltın:
- Uygulamanızda nesnelerin oluşturulma hızını azaltın.
- Bu, kodunuzu daha az nesne oluşturacak şekilde optimize ederek veya önbellekleme mekanizmalarını kullanarak yapılabilir.

4. Eşzamanlı Çöp Toplama Kullanın:

- Eşzamanlı Çöp Toplama işlemini etkinleştirin:
- Duraklatma sürelerini azaltmak için eşzamanlı çöp toplamayı etkinleştirin.
- Bu, JVM bağımsız değişkeni `-XX:+UseConcMarkSweepGC` ayarlanarak yapılabilir.

5. Bellek Kullanımını İzleyin ve Optimize Edin:

- Bellek Kullanımının İzlenmesi:
- Bellek sızıntılarını belirlemek ve bellek kullanımını optimize etmek için bellek kullanımını izleyin.
- Bu, VisualVM veya GCeasy gibi araçlar kullanılarak yapılabilir.

6. Test Et ve İyileştir:

- Test Etme ve Ayarları İyileştirme:
- En iyi performansı elde etmek için çöp toplama ayarlarınızı test edin ve iyileştirin.
- Bu, uygulamanızı yük altında çalıştırarak ve çöp toplama duraklama sürelerini izleyerek yapılabilir.

Bu adımları izleyerek CI/CD işlem hattınızdaki ortalama çöp toplama duraklama sürelerini azaltabilir ve verimli uygulama performansı sağlayabilirsiniz.

Alıntılar:
[1] https://www.dynatrace.com/resources/ebooks/javabook/reduce-garbage-collection-pause-time/
[2] https://blog.heaphero.io/2018/07/10/micrometrics-for-ci-cd-pipeline/
[3] https://dzone.com/articles/how-to-reduce-long-gc-pause
[4] https://blog.gceasy.io/2018/07/10/micrometrics-for-ci-cd-pipeline/
[5] https://github.com/cypress-io/cypress/issues/8525