Saklı yordam ölçeklenebilirliğini test etme


14

Her sayfa yüklemesinde belirli bir kullanıcı için yeni mesaj sayısını kullanıcı arayüzüne teslim etmek için çağrılacak bir e-posta uygulamam var. Ben DB düzeyinde test ediyorum şeyler birkaç varyasyon var ama hepsi saklı proc çağrı tarafından soyutlanır.

Kırılma noktasının (saniyede istek sayısı) ne olacağını görmek için DB çarpmaya çalışıyorum.

Özetle, userId üzerinde kümelenmiş bir dizin ile bu userId, newMsgCount gibi bir tablo var. SQL saniyede yüzlerce veya binlerce yanıt sunabilmelidir. Bence laggard benim .NET uygulaması.

SQL performansına dayalı test sonuçlarını elde etmek için bunu nasıl iyi bir test yapabilirim?

Bu benim saklanmış proc adı ve benim DB pund için param verebilir bir araç var mı?

DB bir min dönüp dönmeyeceğini görmek istiyorum. saniyede 250 yanıt.


1
Harika bir soru. Biraz daha genel olacak şekilde genişletip soruyorum: Veritabanınızı nasıl test edersiniz?
Nick Chammas

Yanıtlar:


11

SQLQueryStress, küçük ölçekli eşzamanlılık testi için harika bir araçtır, ancak gerçekten yük testi işine bağlı değildir. Şaşırtıcı derecede az bilinen bir araç seti, çoğu SQL Server stres testi senaryosu olan RML Yardımcı Programları ile başa çıkabilen Microsoft'tan ücretsiz olarak edinilebilir .

Araçların kısa bir özeti:

  • ReadTrace , Profiler izlerini .trc dosyalarından .rml'ye (Yeniden Biçimlendirme Dili Yeniden Oynat) dönüştürür.
  • OStress , .rml ve .sql dosyalarını bir sunucuya karşı yürütmek için kullanılır.
  • ORCA (OStress Replay Control Agent), OStress'in dağıtılmış örnekleri arasında yeniden yürütmeyi koordine eder.
  • Muhabir performans analizi raporları sağlar.

SQLCat ekibinden örnek bir veritabanı ve iş yükleri, RML Utilities 9.0 kullanarak Microsoft SQL Server için Hassas Performans içeren mükemmel bir hızlı başlangıç ​​makalesi var.

Yeniden oynatma için Profilleme etkinliği seçeneğine veya senaryolarınızda daha uygun olana, daha sonra OStress ve ORCA aracılığıyla yeniden yürüttüğünüz bir .sql komut dizisini el ile açma seçeneğiniz vardır.

Hem yük testi hem de performans sorunlarını araştırmak için harika araçlar.


6

Kullanabileceğiniz araçlardan biri SQLQueryStress . Hızlı bir başlangıç ​​için şunları sağlayın: saklı yordam yinelemeler ve iş parçacığı sayısı. Ardından stres testine başlayın. CPU saniyeleri, mantıksal okumalar, vb. Gibi metrikler gösterilecektir.


4

Bir .NET geliştiricisi gibi görünüyorsunuz. Bunun bir yolu, çoklu iş parçacığı kullanan küçük bir uygulama yazmak ve veritabanına ve saklı yordama yalnızca belirli bir miktarda eşzamanlı isabet yazmaktır. Bu sırada bir iz çalıştırın.

SQL Server üzerindeki yükü otomatik olarak artırmak istiyorsanız, eşzamanlı iş parçacığı miktarını belirli bir aralıkta artırmak için uygulama kodunu yazın.

Bu şekilde devam ederdim.


Neden açık kaynak kodlu bir proje Benchmark.NET kullanarak ve paralel bir ölçüt kullanarak bu uygulamayı yazmıyorsunuz ?
Andrei Rînea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.