Teşhis araçları ve günlükler

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu konuda, Apigee Edge'de ağ ve JVM ile ilgili sorunları gidermek için kullanabileceğiniz ağ araçları, JVM araçları ve teşhis günlükleri ele alınmaktadır.

TCP/IP paket izleme (tcpdump) yardımcı programı

tcpdump aracı, bir ağ üzerinden alınan veya aktarılan TCP/IP paketlerini yakalamanıza ya da filtrelemenize olanak tanıyan bir komut satırı paket izleme aracıdır. Linux/Unix tabanlı işletim sistemlerinde kullanılabilir. Bu yardımcı programı yum kullanarak aşağıdaki şekilde yükleyebilirsiniz:

yum install tcpdump

tcpdump aracı, ağ veya SSL ile ilgili sorunları gidermek için yararlıdır. Örneğin:

  • 502 Bozuk Ağ Geçidi Hataları (EOF istisnasından kaynaklanır)
  • 503 Hizmet Kullanılamıyor Hataları
  • SSL el sıkışma hataları

Bu sorunlardan herhangi birini gidermek için öncelikle hatanın oluştuğu bileşen çiftini belirlemeniz gerekir. Edge için aşağıdaki çiftlerden biri olabilir:

  • İstemci uygulaması ve yönlendirici
  • Yönlendirici ve Mesaj İşleyici
  • Mesaj işleyici ve arka uç sunucusu

Sorunlu bileşen çiftini belirledikten sonra, bu bileşenlerden birinde veya her ikisinde tcpdump kullanarak ağ paketlerini yakalayabilirsiniz.

tcpdump kullanarak belirli bir ana makineye gönderilen/ana makineden alınan paketleri yakalama

Belirtilen ana makineye (IP adresi) gönderilen veya bu ana makineden alınan tüm paketleri yakalamak ve bilgileri belirtilen dosyaya kaydetmek için aşağıdaki tcpdump komutunu kullanın:

tcpdump -i any -s 0 host <IP address> -w <File name>

Burada:

Parametre Açıklama
-i (arayüz), paketlerin yakalanması gereken arayüzü belirtir. "any" değerini kullanarak tüm arayüzlerden paket yakalayabilirsiniz.
-s (snarf/snaplen) yakalanacak her paketin miktarını belirtir. 0 (sıfır) değerini kullanarak paketin tamamını yakalayabilirsiniz.
IP adresi paketleri yakalamak istediğimiz ana makinenin IP adresidir.
Dosya Adı tcpdump'ın yazılması gereken dosyanın adıdır.

Örnek

Mesaj İşleyici ile arka uç sunucusu arasındaki paketleri yakalamak istediğinizi varsayalım:

  1. Mesaj İşleyici makinesine giriş yapın.
  2. Paketleri yakalamak istediğimiz arka uç sunucusunun IP adresini belirleyin (22.22.22.22 olduğunu varsayalım).

Belirli bir IP adresine sahip bir ana makinenin ağ paketlerini yakalamak için aşağıdaki komutu kullanın:

tcpdump -i any -s 0 host 22.22.22.22 -w rmp-123.pcap

Arka uç sunucusu birden fazla IP adresine çözümleniyorsa tcpdump komutunda arka uç sunucusunun ana makine adını aşağıdaki gibi kullanın:

tcpdump -i any -s 0 host <Hostname> -w rmp-123.pcap

Farklı IP adreslerine (22.22.22.22, 33.33.33.33 ve 44.44.44.44) sahip birden fazla arka uç sunucusu varsa aşağıdaki tcpdump komutunu kullanın:

tcpdump -i any -s 0 host 22.22.22.22 or host 33.33.33.33 or host 44.44.44.44 -w rmp-123.pcap

Tcpdump'ları analiz etme

tcpdump komutunu veya GUI tabanlı Wireshark aracını kullanarak tcpdump'ları görüntüleyebilir veya analiz edebilirsiniz.

Referanslar

Yığın dökümleri

Yığın dökümleri, bir Java işleminin belleğinin anlık görüntüsüdür. Bu dosyalar, yığın dökümü toplandığı sırada yığındaki Java nesneleri ve sınıfları hakkında bilgi içerir. Genellikle oldukça büyük boyutlu olup birkaç yüz MB ile birkaç GB arasında değişir.

Yığın dökümü, Mesaj İşleyici gibi bir Java işlemi şu durumlarda çok faydalıdır:

  • Yüksek bellek kullanımı
  • OutofMemoryError

Java işlemi için yığın dökümü oluşturma

Java, çalışan bir Java işleminin bellek istatistiklerini veya yığın dökümlerini oluşturmanıza olanak tanıyan jmap adlı bir yardımcı program sunar.

Bir Java işleminin yığın dökümünü oluşturmak için aşağıdaki jmap komutunu kullanın:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>

Burada:

Parametre Açıklama
JAVA_HOME Java'nın yükleme dizini
filename Yığın dökümünün yazılacağı dosya adıdır.
pid Head dökümü alınması gereken Java uygulamasının işlem kimliğidir.

Örnek

mp-east adlı mesaj işlemcisinin yüksek bellek kullandığını veya OutOfMemory hataları verdiğini varsayalım. Unix işletim sisteminde ps komutunu kullanarak Mesaj İşleyici'nin işlem kimliğini belirleyin. Bu sayının 24569 olduğunu varsayalım.

Yığın dökümü oluşturmak için jmap yardımcı programını aşağıdaki gibi çalıştırın:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569

Yığın dökümlerini analiz etme

Olası bellek sızıntılarını veya hangi Java nesnelerinin yüksek bellek kullanımına yol açtığını belirlemek için Eclipse MAT (Memory Analyzer Tool) kullanılarak yığın dökümleri analiz edilebilir.

Referanslar

Yığın dökümü toplama

jmap utility

jmap man sayfası

Memory Analyzer Tool (MAT)


İş parçacığı dökümleri

İş parçacığı dökümü, çalışan bir Java işleminin tüm iş parçacıklarının durumunun anlık görüntüsüdür. Her iş parçacığının durumu, yığın izi olarak adlandırılan yığın içeriğiyle birlikte gösterilir. İş parçacıklarının bazıları çalışan Java uygulamasının bir parçası olurken diğerleri JVM'nin dahili iş parçacıklarıdır.

İş parçacığı dökümü, uygulamanın her bir iş parçacığı etkinliği hakkında bilgi verir. Bu bilgiler şu amaçlarla kullanılabilir:

  • CPU'nun yükselmesi, yavaş yanıt süreleri veya yanıt vermeyen Java uygulamaları gibi sorunları teşhis etme
  • Uygulama ve JVM performansını optimize etme

İş parçacığı dökümleri oluşturma

Bir Java işlemi için iş parçacığı dökümü, aşağıda gösterildiği gibi jstack yardımcı programı kullanılarak oluşturulabilir:

sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>

Burada:

Parametre Açıklama
JAVA_HOME Java'nın yükleme dizinidir.
pid İş parçacığı dökümünü yakalamak istediğiniz Java uygulamasının işlem kimliğidir.
filename İş parçacığı dökümünün yazılacağı dosya adıdır.

Örnek

İleti İşleyici mp-east üzerinde işlem kimliği 37320 için iş parçacığı dökümü oluşturmak üzere aşağıdaki komutu kullanın:

sudo -u apigee <JAVA_HOME>/bin/jstack -l 37320 > /opt/apigee/edge-message-processor/mp-east-threadDump.txt

Yukarıdaki örneğe göre, işlemin iş parçacığı dökümü /opt/apigee/edge-message-processor/mp-east-threadDump.txt dosyasına kaydedilir.

İş parçacığı dökümlerini analiz etme

İş parçacığı dökümlerini vi (Linux) veya not defteri (Windows) gibi herhangi bir metin düzenleyicide görüntüleyebilirsiniz. İş parçacığı dökümünün farklı bölümleri ve bilgilerin nasıl yorumlanacağı hakkında ayrıntılı bilgi için İş parçacığı dökümü bölümüne bakın.

Referanslar