12.02.2012

Bea Weblogic Performans-1

Herhangi bir sistemde performans değerlendirmesi yapmak için ölçülmesi gereken bazı değerler vardır.

Biz bu değerleri toplayalım

Response time:Zaman ölçü birimidir. Bir web sitesinin gelme zamanı
Latency:Zaman ölçü birimidir. istekle gerçekleşme arasındaki süreyi örnek olarak verebiliriz.
Throughput:sayı değerdir. byte megabyte/saniyedir.saniyede yapılan istek sayısını örnek verebiliriz.
birde resource vardır. Resource ise bir kaynağın kullanımıdır. CPU kullanımı gibi

Tabiki bu değerleri User load,Data load hardware ve kaynak yogunluğunu örnek alarak incelemek lazımdır. birim zamanda 100 kullanıcıya hizmet verirken birim zamanda 120 kullanıcıya hizmet vermek bir artış sayılabilir.

Performans konusunda yapılan testleri ikiye ayırabiliriz.
Stress test : bu tarz testlerde amacımız genellikle sistemin limitlerini bulmaktır.Aynı andaki Maximum user , maximum data miktarı gibi.
Load test: load testteki amacımızda belirli seviyelerdeki yuklenmelerde nasıl bir tepki aldığımızı görmektir.

Bütün bu testler bize benchmarking değerleri oluşturur.

Benchmarking nedir: bir performans ölçümlemesidir. Birim zamanda işyükünüde alarak oluşturulan sonuçlara benchmark deiyoruz.
Benchmark yapılmasının bir sebebide karşılastırma yapılabilmesidir.
Amacımız daha hızlıdan çok daha optimum bulmaktır. İST-ANK arasını 3 saatte 300 tl benzin harcayarak gitmektense 4 saatte 100TL harcayarak gitmek daha iyidir diyebilmektir.Normal sartlar altında bir temel benchmark alıp bunu farklı zamanlardaki ihtiyaclarla karşılastırmak ve sonuçlarını detaylı bir şekilde ortaya koymak bizim performans tunning temel amacımızdır.

Her software için performans ölçebilecek aletlere ihtiyaç vardır. Bea Weblogic için Grinder toolunu size tavsiye ediyorum. Açık bir kaynaktır ve kolaylıkla indirebilirsiniz.

Bu tarz aletlerele belirli bir iş yükü belirleyeyip düşündüğümüz alanlara uygularız. Ayarları değiştirmeden bir rapor alırız, ayarları değiştirip bir rapor daha alıp iki raporu birbiri ile kıyalarız. Bu testleri yaparken işyükünü aynı tutmak CPU aynı tutmak Network genişliğini aynı tutmak çok önemlidir.
Bazı durumlarda metric dediğimiz bir kavram karşınıza çıkacaktır. Metric nedir deseniz metric bir ölçü birimidir örneğin dakikada yapılan sayfa isteği bir metrictir. Zaten performans raporları sonuçlarını daha iyi anlamamızıda bu metricler belirler.

Bottlenecks nedir. Genelde herkes bir bottlenecks bahseder , bottleneck örnek vermek gerekirse CPU %100 yoğunlukta olması ve bundan dolayı sistemin performansındaki gecikmeler bottlenecks diyebiliriz. Bu durumu sadece CPU bağlı tutmamak lazım CPU olabildiği gibi I/O NETWORK gibi kaynaklarında bottleneck olabilir.
Grinder toolunun en büyük özelliği istediğimiz kadar processes ve threads oluşturup grafik ekranda sonuç verebilmesidir.
Kendi konsolundan raporları detaylı izlememiz mümkündür. Makinalara agentlarını kurup başlıyoruz test yapmaya. Test için oluşturulan scriptler Python scriptidir. Testin sonucunu TPS ortalama transaction/saniye ve toplam transaction sayısını verir.

http://grinder.sourceforge.net adresinden indirebilirsiniz.