Sitenin yük altında nasıl performans göstereceğini test etmenin herhangi bir yolu var mı


9

Bir Asp.net MVC web sitesi yaptım ve paylaşılan bir barındırma sağlayıcısında barındırdım. Web sitem çok genel bir fikri çevrelediğinden, gelecekte eşzamanlı kullanıcı sayısı olabilir.

Bu yüzden, web sitemi yük altında performans açısından test etmenin bir yolunu düşünüyordum. 100 veya 1000 kullanıcı aynı anda çevrimiçi olduğunda ve web sitesinde gezinirken sitenin nasıl performans göstereceği gibi. Bu da LINQ sorgularımın iyi yazılmış olup olmadığını anlamamı sağlayacaktır.

Yanıtlar:


12

Her şeyden önce, uygun terim stres testidir . Web sitesi stres testleri için oldukça az çözüm var, tavsiye ettiğim bir barındırılan çözüm yük etkisidir . Yaptıkları şey, dünya çapındaki çeşitli sunuculardan gelen isteklerle sitenizi bombalamak ve sitenizin stresi nasıl ele aldığına dair analitik bir rapor sunmaktır. Genel bir fikir edinebileceğiniz ücretsiz bir teste sahipler, ancak daha fazlası için bir abonelik ücreti ödemeniz gerekiyor.

Ziyaretçiler yerel olarak başvurunuzu profil gerektiğini daha özel bilgiler için, bakış noktası gelen testlerin Bu tür sadece web sitesi test ve gerçekten önceki cevaplar eklemek için daha fazla bir şey yok, ben kullanıyorum Apache JMeter sıra .

Ve son olarak, performans bilincine sahip herhangi bir web geliştiricisi olarak YSlow'a bir göz atmalısınız :

YSlow, JavaScript kullanarak dinamik olarak oluşturulan bileşenler de dahil olmak üzere sayfadaki tüm bileşenleri inceleyerek web sayfası performansını analiz eder. Sayfanın performansını ölçer ve iyileştirme önerileri sunar.

Firefox için YSlow, Firefox için Firebug web geliştirme aracına entegre edilmiştir.

Daha sık olmamakla birlikte, Javascript'i gerçek darboğaz olarak buluyorum ve bitiş kodu veya veritabanı geri değil. Elbette kötü yazılmış sorgular büyük bir performans cezası olabilir, ancak bunlarla uğraştıktan sonra, her zaman YSlow'u çalıştırın ve önerilerini takip edin, bu bir hayat kurtarıcıdır.

Daha fazla okuma:

elbette StackOverflow üzerinde!


Elbette loadimpact'in abonelik ücretini ödemeden önce diğer çözümleri keşfedin. Birkaç benzer çözüm var. Onu seviyorum, ama iş bana değil ücreti ödedi :)
yannis

Ücretsiz testi kullanacağım .... şimdilik herhangi bir anlam ifade etmediği için titiz test istemiyorum .... sadece fikir edinmek istiyorum :-)
Pankaj Upadhyay

7

Paylaşımlı hosting kullanıyorsunuz, bu nedenle uygulamanızın herhangi bir zamanda erişebileceği kaynakların düzeyi konusunda hiçbir garanti olmadığından, performansı gösteren herhangi bir testi gerçekleştirmeniz pek olası değildir.

Ancak, bu durumda ne yapacağım özel bir kutu üzerinde tek başına bir test çalıştırarak başlamaktır (bu kendi dizüstü olabilir); Visual Studio Yük Testi paketi veya JMeter (kişisel olarak dayanamadığım) gibi bir araç kullanın ve uygulamanızda tipik bir yolu temsil eden bir dizi test oluşturun (kullanım yoluyla tipik bir yol hakkında bilgi alabilmelisiniz) Bu mevcut değilse, yalnızca olası olduğunu düşündüğünüz birini kullanabilirsiniz, ancak bunun doğru bir temel veremeyeceğini unutmayın). Sonra bir rampa testi yapın, 1 kullanıcıdan başlayın, sonra tahmini tepe yükünüze ulaşıncaya kadar kullanıcıları yavaşça ekleyin. Bu, sisteminizin bir bütün olarak ne kadar iyi kaldığını göstermelidir (Şahsen biraz boşluk bıraktığımdan emin olmak için biraz daha ileri götürmeyi seviyorum).

Yapmak isteyeceğiniz son şey, testi çalıştırırken ANTS performans profili oluşturucu gibi bir profil oluşturma aracı çalıştırmaktır (bunun biraz ek yük getirdiğini unutmayın). Bu, uzun süren sorguları ve yöntemleri tanımlamanıza olanak tanır ve uygulamanızın gerçekten yavaş olduğu noktalara işaret eder (bir ipucu: neredeyse hiçbir zaman olacağını düşündüğünüz yer değildir).

Sahip olacağınız temel sorun, ilk önce söylediğim gibi, paylaşılan barındırmada olduğunuzdur, bu yüzden herhangi bir gerçekçi canlı ortam öykünmesi yapmak neredeyse imkansız olacaktır. Ancak, uygulamanız vaat ettiğiniz kaynaklara benzer bir ortamda yeterli miktarda boşluk varsa, beklemeden önce ortamınızın sınırlarına ulaşmış olsanız bile, kodun barındırmada tutabileceğine dair güven duymalısınız.


paylaşımlı barındırma testi ile kendi sunucusu arasındaki farka ışık tuttuğunuz için teşekkür ederiz.
Pankaj Upadhyay

3

JMeter veya Öğütücü gibi araçlara bakabilirsiniz .

JMeter'i şimdiye kadar kullandım, test planlarını kolayca oluşturmanızı sağlayan grafiksel bir araçtır. Birden çok iş parçacığına sahip birden çok kullanıcıyı simüle edebilirsiniz. Ayrıca, tarayıcınızı bir JMeter proxy'sine bağlayıp gerçek işi yaparak sitenizin tipik kullanımlarını da kaydedebilirsiniz, böylece istekleri sıfırdan kendiniz yazmanız gerekmez. Eğer doğru hatırlıyorsam Öğütücü komut dosyası tabanlı, aynı zamanda iyi bir uyum olabilir.


1

Stres testi için Loadimpact'i de seviyorum. Sitemdeki hızlı kontroller için kullanmaya eğilimli olduğum şeylerden biri Apache Bench. Son testler yapmak istediğimde ücretli bir hizmete bakacağım.

Çalışmam ayrıca çok pahalı olan ancak tüm sitelerimizi dahili olarak test etmemizi sağlayan WebLoads'a da yatırım yaptı. Gerçi tavsiye etmiyorum.


0

Yük testinin beklenenden daha fazla zaman alacağı ve sıkıcı bir görev olacağı için manuel olarak yapılabileceğini düşünmüyorum. Muhtemelen birçok kullanıcı için gidebilen Load Runner'ı kullanabilirsiniz.


0

Bir Autohotkey (AHK) komut dosyası, bir kullanıcı kullanıcıyı simüle edebilir. Gün boyu koşsun.

Birkaç kullanıcıyı simüle etmek için çeşitli kutularda çalışmasına izin verebilirsiniz. Güzel olan şey, test stilinin tamamen kontrolünüz altında olmasıdır. Bir rapor özelliğini spam olarak gönderen 1 AHK komut dosyasına sahip olabilir ve diğer özelliklerin kullanıcılarını etkileyip etkilemediğini görebilirsiniz.

AHK'nın diş açma yeteneklerine aşina olmasam da binlerce kullanıcıyı simüle etmek zor olabilir. Sahip olduğunuz bilgisayar sayısına bağlı olabilirsiniz.

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.