Bu da bir izleme ve analiz aracı yazısı

Seriye JMX ile devam ediyoruz — bu sefer konu VisualVM, JVM tabanlı uygulamaları (dolayısıyla TROIA application server'ı) profillemek için kullanılan görsel bir araç. Yine TROIA kod örneği yok, bu bir araç kullanım rehberi.

VisualVM ne işe yarar

VisualVM, çalışan bir Java uygulamasının performansını "çalışma süresine dayalı" olarak analiz etmenizi sağlar: CPU kullanımı, bellek (heap) kullanımı, thread durumları, heap dump alma, CPU/bellek sampling ve profiling gibi işlemleri tek bir arayüzden yapabilirsiniz.

TROIA application server'ı VisualVM'de bulmak

Sunucuya bağlandığınızda, kullanıcı işlemlerine karşılık gelen thread'leri isimlerinden tanıyabilirsiniz — TROIA'nın kullanıcı oturum thread'leri "CANIAS(rmi)" öneki ile başlar. Bu sayede, belirli bir kullanıcının işleminin hangi thread'de çalıştığını ve o thread'in ne kadar CPU/bellek tükettiğini izleyebilirsiniz.

Ne zaman işe yarar

  • Bir transaction'ın neden yavaş çalıştığını anlamak (CPU sampling)
  • Bellek sızıntısı (memory leak) şüphesi olduğunda heap dump alıp hangi nesnelerin biriktiğini incelemek
  • Yoğun saatlerde thread sayısının beklenenden fazla artıp artmadığını görmek

Sonuç

JMX size "hangi metrik ne durumda" sorusunun anlık cevabını verirken, VisualVM bu metrikleri görsel olarak inceleyip kök nedene inmenizi sağlıyor — özellikle CPU sampling ve heap dump özellikleri, "bu transaction neden bu kadar yavaş/bellek yiyor" sorusuna kod değiştirmeden ilk cevabı bulmanızı sağlar.