SQL Server 2011 Denali ile beraber gelecek olan özelliklerden biri de Distributed Replay Utility’dir. Bu yapı ile database sunucular üzerinde yük testi yapılabilir. Daha önceleri bu işlemler için load runner gibi 3rd party tool’lar kullanılmaktaydı. Denali ile beraber gelecek olan bu yapı sayesinde bir SP’nin sisteme geçilmeden önce canlı testini yapabilir, ya da canlı yapı üzerinde topladığınız trace’leri yük testi yapmak için istediğin sayıda makinada paralel olarak çalıştırıp sonuçları analiz edebilirsiniz.

[more]

Distributed Replay Utility, SQL Server Profiler tarafından toplanan trace sonuçları üzerinden çalışır. SQL Server 2000 ve önceki sürümlerden toplanan trace dosyaları Distributed Replay Utility’de kullanılamaz.

Toplanan trace dosyası Distributed Replay Utility sayesinde 1’den fazla client’da paralel olarak çalıştırılarak yük testi yapılabilir.

Aslında SQL Server Profiler’da da daha önce toplanmış bir trace dosyası tekrar çalıştırabilir. Fakat bu trace dosyasının aynı anda sadece 1 client’tan çalıştırılmasını izin verilir. Oysaki Distributed Replay Utility’de aynı trace dosyasını 1’den fazla client’ta aynı anda çalıştırarak yük testi yapabilirsiniz.

Mesela şöyle bir senaryo düşünelim. Web den satış yapan bir e-Ticaret siteniz var. Kullanılar ürünleri seçiyor ve daha sonra siparişlerini tamamlıyorlar. Sipariş modülüne yeni bir ekleme yaptınız. Yaptığınız bu eklemenin sisteme etkisini tam olarak kestiremiyor ve performans problemi çıkarıp çıkarmayacağını bilmiyorsunuz. İşte bu aşamada sipariş ekranı üzerinden yapılan bir işlemi SQL Server Profiler ile trace alıp kaydediyoruz. Aldığımız bu trace’i Distributed Replay Utility vasıtasıyla test ortamında birden fazla client üzerinden aynı anda çalıştırırak gerçek hayatı simule ediyoruz ve performans sıkıntısı olup olmadığını anlamaya çalışıyoruz.

Distributed Replay Utility aşağıdaki senaryolarda kulanılabilir.

  • Hali hazırda SQL Server 2008 kullanıyorsunuz. 2008 R2’ya geçmek istiyorsunuz ama bu geçişin performanca olarak etkisini tahmin edemiyorsunuz. Böyle bir durumda Distributed Replay Utility ile olayı simule edebilirsiniz.
  • Performance debugging işlemleri için kullanabilirsiniz.
  • Kapasite planlama için kullanabilirsiniz.

Distributed Replay Utility mimarisi aşağıdaki gibidir.

image

Administration Tool bir konsol uygulamasını göstermektedir ve Distributed Replay operasyonunu kontrol etmeye yarar.

Controller, üzerinde SQL Server Distributed Replay Controller adında bir windows service’in çalıştığı bir makineyi işaret etmektedir. Bu makinanin görevi simulasyonu yapacak client’ları organize etmektir. Her Distributed Replay Utility ortamında sadece 1 adet Controller bulunabilir.

Client’lar üzerlerinde SQL Server Distributed Replay Client adında bir windows service’inin çalıştığı, simulasyonu gerçekleştirecek makinelerdir. Fiziksel ya da sanal olabilirler. Aynı anda çalışarak hedef sunucu üzerinde gerçeğe yakın bir yük oluşturmaya çalışırlar.

Target Server, yük testine maruz kalacak veritabanı sunucusudur. Gerçek ortamla karşılaştırma yapabilmek açısından hardware olarak gerçek ortamla yakın özelliklerde olması avantajdır.

Daha sonraki makalelerimde adım adım bu utility’nin kullanılmasını incelemeye çalışacağım.

 

İyi Çalışmalar

Turgay Sahtiyan

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan