Monday, July 23, 2007

Performans Gözlemin Önemi

Çalışan uygulamaların ve uygulama sunucularının sürekli gözlemlenmesi gerekir. Sorunun ne zaman ve nereden geleceğini bilemeyiz, eğer biliyorsak sorun bizdedir, bu durumda "tembel ne duruyorsun? madem sorunu biliyorsun, çözsene!!!" derler, demezler mi?!?

J2EE uygulamalarının üzerinde çalıştıkları Uygulama Sunucuları, birçok özellikleri ile bu tür dikizlenmeye (monitor edilebilmenin argosu) müsaittirler. Birçok uygulama sunucusu kendi üzerinde MBean'lere sahiptir ve bu MBean'lerin remote çağrılması ile kendilerine ait bazı bilgileri çağırana iletir. Etrafımızda Uygulama Sunucusu izleme için birçok araç vardır. JConsole, JBoss ON, Tivoli ITCam, Hyperic, Applications Manager, JProfiler gibi. Bunların hepsini bilmenize veya kullanmanıza imkan yok. Ama hepsi ile ilgili kısa birer açıklama faydalı olacaktır.

JBoss ON - Uzunca hali JBoss Operation Network, adından belli JBoss için yapılmış olan bu uygulama JBoss'un CPU bazında lisans ücreti talep ettiği bir uygulama. Sadece performans monitoring değil, aynı zamanda uygulama sunucusu yönetimi de sağlıyor. Hepsi bir arada, fiyatı 30 CPU ve fazlası için yanlış hatırlamıyorsam 80,000 € civarındaydı.

JProfiler - İşte JVM'in process'ine yapışıp, hayatını sömüren uygulamalardan birisi. Sistemde acaip bir yük yaratıyor. Çok kullanışlı bulmadım. En son 5.0 versiyonunda birçok düzeltme olduğunu duydum.

Hyperic - Durum biraz daha kaliteli hale geliyor. Linux'te kendi kullanıcısını yaratıyor, Database'de şema istiyor. Ama hala yeterli değil.

Applications Manager - Kurulumu ve kullanımı çok kolay, 5 sistemi ücretsiz monitor edebiliyorsunuz, ama fazlası için para ödemeniz gerekiyor. Local'inize kuruyorsunuz, servisi başlatıyorsunuz, istediğiniz sistemi monitor edebiliyorsunuz (JBoss, Tomcat, Oracle ve hatta Linux)

JConsole - Yaklaşık 1 senedir kullanıyorum, neredeyse tüm sorunlarımı çözebiliyorum, memory leak'leri, bu leak'lere yol açan thread'leri bulabiliyorsunuz, JDK ile birlikte geliyor, sisteme yük getirmiyor. JConsole ile ilgili detaylı bir guideline ve gerçek hayat uygulamasını avantajlarını ve dezavantajlarını daha sonraki yazılarımda yazacağım.

Tivoli ITCam - Bu da IBM'in WAS'ları dikizlemek, ve üzerlerinde tam hakimiyet kurup sorunları tespit etmek için kullandığı bir ürün. 2004'te IBM ailesine katılmış. Tivoli başlı başına bir gözlem canavarı, ama bizi sadece ITCam ilgilendiriyor. Bunun kurulumunu yaptık, bununla ilgili de gözlemlerimi ilerleyen yazılarımda paylaşacağım.

Farkındaysanız, çalışan uygulamaların ve uygulama sunucularını gözlemlemek ne kadar önemli, ne kadar hassas yapılması gereken ve ne kadar sorun çözen bir işlem. Tabi memory, CPU gözlemlemek, hani derler ya "Ağaç yaşken eğilir", o hesapta taa Development'tan başlatılabiliyor. Bunun için de çeşitli IDE plugin'leri mevcut. Yukarıda listesini verdiğim gözlem araçlarının dışında tonla gözlem aracı mevcut, ben sadece deneyim yaşadıklarımı veya en azından duyduklarımı yazıyorum.

0 comments: