Java Sanal Makinesi (JVM), performansı optimize etmek ve üretim sorunlarını gidermek için yararlı olan 3 kritik yapı oluşturur. O eserler şunlardır:

  1. Çöp toplama (GC) günlüğü
  2. Konu dökümü
  3. yığın dökümü

1. Çöp Toplama Günlüğü

a) GC Günlüğü Nedir?

GC Günlüğü, çöp toplama olaylarıyla ilgili bilgileri içerir. Kaç tane GC olayının çalıştığını, bu GC olaylarının bu komutunun ne tipte olduğunu (yani, Young GC veya Full GC), her bir GC olayının uygulamayı ne kadar süreyle duraklattığını, her GC olayının ne kadar nesneyi geri aldığını gösterecektir.

b) Bir GC Günlüğü Neye benziyor?

Örnek çöp toplama günlük dosyası burada bulunabilir.

c) GC Günlükleri Nerelerde Kullanılır?

Çöp toplama günlükleri, uygulamanın GC ve bellek performansını incelemek için kullanılır. GC duraklama sürelerini optimize etmek için kullanılır, uygulamanız için en uygun bellek boyutunu belirlemek için kullanılır, ayrıca bellekle ilgili sorunları gidermek için kullanılır.

d) GC Günlüğü Nasıl Oluşturulur?

Aşağıdaki JVM bağımsız değişkenlerini ileterek çöp toplama günlükleri oluşturabilirsiniz:

8’e kadar olan Java sürümlerinde:

9’dan başlayan Java sürümünde:

file-path: Çöp Toplama günlük dosyasının yazılacağı konumdur.

e) Bir GC Günlüğü Nasıl Anlaşılır?

Çöp toplama günlüğü formatı, JVM satıcınızın kim olduğuna (Oracle, HP, IBM, Azul, ..), Java sürümüne (1.5, 5, 6, 7, 8, 9, 10, 11, 12,…), çöp toplama algoritması (Serial, Parallel, CMS, G1, Shenandoah, Z GC) ve JVM argümanlarını iletirsiniz. Dolayısıyla standart bir format mevcut değildir. Ancak burada, GC günlük dosyası biçimini anlamanıza yardımcı olmaya çalışan bir video eğitimi verilmiştir.

f) Bir GC Günlüğünü Analiz Etmek İçin Hangi Araçlar Kullanılır?

Birden fazla Çöp toplama günlüğü analiz aracı vardır. Popüler olanlardan bazıları burada verilmiştir: GCeasy, IBM GC & Memory görselleştirici, HP JMeter, Google Garbage Cat

2. İplik Dökümü

a) İplik Dökümü Nedir?

İş parçacığı dökümü, belirli bir zamanda uygulamada çalışan tüm iş parçacıklarının anlık görüntüsüdür. İş parçacığı durumu, iş parçacığı kimliği, yerel kimlik, iş parçacığı adı, yığın izleme ve öncelik gibi uygulamadaki her iş parçacığı hakkında tüm bilgileri içerir.

b) Bir İplik Dökümü Neye benziyor?

Örnek bir iş parçacığı dökümü burada bulunabilir.

c) İplik Dökümü Nerelerde Kullanılır?

İş parçacığı dökümleri öncelikle CPU artışları, uygulamada yanıt vermeme, zayıf yanıt süresi, askıda kalan iş parçacıkları, yüksek bellek tüketimi gibi üretim sorunlarını gidermek için kullanılır.

d) Bir Konu Dökümü Nasıl Oluşturulur?

İş parçacığı dökümleri, çalışan uygulamadan 8 farklı seçenek kullanılarak yakalanabilir. İş parçacığı dökümü almak için en yaygın seçenek ‘jstack’ aracını kullanmaktır. jstack aracı, JDK_HOMEbin klasöründe gönderilir. İş parçacığı dökümünü yakalamak için vermeniz gereken komut:

pid: iş parçacığı dökümü yakalanması gereken uygulamanın İşlem Kimliğidir

dosya yolu: iş parçacığı dökümünün yazılacağı dosya yoludur.

e) Bir Konu Dökümü Nasıl Anlaşılır?

İşte iş parçacığı dökümlerini nasıl anlayacağınıza dair iyi bir ayrıntılı genel bakış sağlayan bir video konuşması.

f) Bir Konu Dökümünü Analiz Etmek İçin Hangi Araçlar Kullanılır?

İşte en yaygın kullanılan iş parçacığı dökümü analiz araçları: fastThread, Samurai, IBM Thread & Monitor Analyzer, Visual VM

3. Yığın Dökümü

a) Yığın Dökümü Nedir?

Yığın dökümü, uygulamanızın belleğinin belirli bir zamandaki anlık görüntüsüdür. Bellekteki nesnelerin neler olduğu, hangi değerleri taşıdığı, boyutlarının ne olduğu, başka hangi nesnelere atıfta bulunduğu gibi bilgileri içerir.

b) Bir Yığın Dökümü Neye benziyor?

Örnek bir yığın dökümü burada bulunabilir. (Not: İkili formatta olacak. Yani aslında okuyamazsınız).

c) Yığın Dökümü Nerelerde Kullanılır?

Yığın dökümleri öncelikle bellekle ilgili OutOfMemoryError sorunlarını gidermek için kullanılır.

d) Yığın Dökümü Nasıl Oluşturulur?

Çalışan uygulamadan 7 farklı seçenek kullanılarak yığın dökümü alınabilir. Yığın dökümü almak için en yaygın seçenek ‘jmap’ aracını kullanmaktır. jmap aracı JDK_HOMEbin klasöründe gönderilir. Yakalamak için vermeniz gereken komut şudur:

pid: yığın dökümünün yakalanması gereken Java İşlem Kimliğidir

dosya yolu: yığın dökümünün yazılacağı dosya yoludur.

e) Bir Yığın Dökümü Nasıl Anlaşılır?

Yığın döküm dosyaları ikili biçimdedir ve boyut olarak büyük olma eğilimindedir. Bunun yanı sıra, formatları büyük ölçüde dokümantasyondan yoksundur. Bu nedenle, bunları analiz etmek ve anlamak için yığın dökümü analiz araçlarını (bir sonraki soruda verilen) kullanmanız gerekir.

f) Bir Yığın Dökümünü Analiz Etmek İçin Hangi Araçlar Kullanılır?

İşte en yaygın olarak kullanılan yığın dökümü analiz araçları: Eclipse MAT, HeapHero, JVisualVM.
Bu makalenin Çöp Toplama Günlükleri, İplik Dökümleri ve Yığın Dökümleri Nasıl Analiz Edilir ile ilgili tüm yöntemleri kapsadığını umuyoruz. Bu makaleyi sizin için gerçekten yararlı bulduysanız, lütfen bu bilgiyi arkadaşlarınız, akrabalarınız, aileniz ve diğerleriyle paylaşın. ile sonraki gönderilerde görüşmek üzere signalfix.net!