JMeter birden çok kullanıcı sorun

3 Cevap php

Biz Php uygulama Apache 2 web sunucu üzerinde çalışan test JMeter kullanıyor. Ben 25 veya 50 Konuları kullanmak JMeter yükleyebilirsiniz ve sunucu üzerindeki yükü sunucu yapar gelen ancak, tepki süresi artmaz. Daha fazla iş parçacığı yavaş tepki süresi. Jmeter veya Apache istekleri sırada bekliyor gibi görünüyor. Ben apache web sunucusu yapılandırma dosyasında maxclients değeri değişti, ama bu sorunu değişmez. Jmeter çalışırken ben uygulamayı kullanmak ve saygın bir yanıt süreleri alabilirsiniz. Ne verir? Ben parçacığı sayısını artırmak tarafından boşta% 0 aşağı benim sunucu vergi edebilmek için beklenebilir. Herkes bana doğru yönde işaret yardımcı olabilir misiniz?

Güncelle: Ben benim uygulama oturumları kaldırmak eğer sunucu üzerinde tam bir yük simüle etmek mümkün duyuyorum bulundu. Ben her iş parçacığı için oturumları yeniden etkinleştirmek ve kullanmak bir HTTP Cookie Manager denedim, ama bir etki yaratmak için görünmüyor.

3 Cevap

Sen darboğaz nerede oluştuğunu belirlemek ve daha sonra sorunu düzeltmek teşebbüs etmek gerek.

  • JMeter istemci iyi equipted makine üzerinde çalışan olmalıdır. Ben JVM çalıştıran bir Solaris / Unix sunucu tercih, fakat <200 parçacıkları için, modern bir pencere makinesi sadece iyi yapacağız. JMeter bir tıkanıklık olabilir, ve bir kez herhangi bir anlamlı sonuç almazsınız. Ayrıca, ne test için ayrı bir makine üzerinde çalışan, ve aynı ağ üzerinde tercih edilmelidir. Test teçhizat ve sunucu uzak ise WAN gecikme, bir sorun haline gelebilir.
  • Kontrol etmek için ikinci şey Apache işçilerdir. Mod_status - - Seni her işçinin durumunu gösterecek Apache modülü vardır. Bu havuz boyutu çok düşük ayarlanmış olması mümkündür. Mod_status, kullanımda kaç işçi görmek mümkün olacak. Kaç, ve Apache istekleri işlemek için herhangi bir işçi olmaz ve istekleri sıraya olacaktır. Çok fazla ve Apache üzerinde çalıştığı kutusundaki bellek tüketebileceği.
  • Sonra, veritabanı kontrol etmelisiniz. Ayrı bir makinede ise, veritabanı bir IO veya CPU sıkıntısı olabilir.
  • Lütfen bir darboğaz isabet ve sunucu ve db aynı makine üzerinde ise, genellikle bir CPU, RAM veya IO sınırı vuracak. Ben onlar tespit etmek kolay olduğu için bu listede. Bir CPU bağlı app alırsanız, kolayca CPU kullanımı% 100 gitmek görebilirsiniz. RAM biterse, makine takas başlayacak. Windows ve Unix hem sizin boş RAM görmek oldukça kolay. Son olarak, GÇ bağlı olabilir. Bu çok çeşitli araçları veya istatistikleri kullanılarak izlenebilir, ancak CPU kadar açık değil.

Son olarak, özellikle Sorunuza, göze çarpan bir şey tek bir dizinde saklanan oturum dosyalarının büyük bir sayıda olması mümkün değildir. Dosyaları genellikle PHP oturum bilgilerini depolar. Bu dizin büyük alırsa, o oturumu bulmak için PHP için zaman giderek uzun miktarda alacaktır. Eğer test çerezleri kapalı olacak koştu eğer, PHP uygulaması her kullanıcı istek için oturum binlerce dosya oluşturmuş olabilirsiniz. Windows sunucu üzerinde, bu dizinleri iki işletim sistemlerinde saklanan şekilde farklılıklar yapmak, bir unix sunucu üzerinde daha hızlı yavaşlar.

Sorun Apache yapılandırma veya PHP config ise PHP tarafından apache değil görmek tarafından sunulan statik bir dosya kontrol etmeyi deneyin.

Ayrıca, ağ bağlantıları ve yapılandırmasını kontrol edin. Bir duvara vurmak kadar bizim JMeter test güzel ilerliyor edildi. Sonunda biz sadece sabit gigabit olacak, bir 100Mb bağlantı vardı ve doymuş olduğunu fark etti. Sizin ağ kartları veya anahtarı kendi hız ayarı "otomatik", özellikle de düşündüğünüzden daha düşük bir hızda çalışıyor olabilir.

Eğer sabit bir verim zamanlayıcı kullanıyor musunuz? Jmeter kendisine tahsis parçacığı ile verimini hizmet edemez ise, tepki süresi bu kuyruk ve blowouts görürsünüz. Bu sorun olup olmadığını anlamaya, daha Konuları eklemeyi deneyin.

Komut dosyası içinde javascript aramaları olduğunda ben de bu olay bir rapor bulundu. Bu durumda, yazısının üstündeki test planı elemanına javascript çağrıları taşımak için çalışın, ya da değerini ön hesaplamak için yollar arayın.