Bir müşterinin "Web sunucunuza 10:03:24 saatinde bir istek gönderdim ve 20 saniye sürdü, neden?" Diyeceği bir durum var. Bunu IIS günlüklerinde de görebiliyorum, ancak sunucunun ASP.NET modülü 100ms olarak kaydetti ve CPU ve Disk sayaçları düşüktü.
Bunun yavaş bir ağ bağlantısı nedeniyle olduğundan şüpheleniyorum. Bunu nasıl kanıtlayabilirim?
Bu, istemcinizin tarayıcısı ve yukarıda belirtilen web sayfası için tüm resim / komut dosyası / html kaynakları arasında paket damlalarını aramakla başlar . Tutarlı paket düşüşleri bulursanız, ağda düzeltilmesi gereken bir şey olduğundan emin olabilirsiniz ... sadece aşırı yüklenmiş bir bağlantı olsa bile. Paket düşüşleri yavaş bir ağın tek nedeni değildir, ancak deneyimimdeki en yaygın kaynaktır. Diğer kaynaklar yanlış yapılandırılmış bir proxy veya önbellek motoru olabilir. Ne yazık ki, tüm olası ağ suçlularını burada listeleyemiyorum.
Bununla birlikte, aslında hız sorunları kendi kontrolleri içinde olduğunda, insanlar genellikle ağı suçlarlar. Olası açıklamalar:
- Bu sayfanın HTML'sinin kötü yazıldığını ve gerekli komut dosyalarını yanlış sırada yüklediğini ve neredeyse tüm kaynakların yerinde olmasına rağmen sayfanın tamamının yavaş işlediğini varsayalım.
- Sayfa, var olmayan bir kaynağı bekliyor ve beklerken zaman aşımına uğradı.
- Bir komut dosyası bir süre engellenen yavaş bir döngüde
- Bir önbellek motorunun görüntü aktarması uzun zaman alıyor
- CGI'niz veritabanında bir şey arıyor ve aramanın kendisi yavaş
- Sayfanın yazılma şekli nedeniyle işleri yavaşlatan google analizi kullanıyorsunuz
Devam edebilirdim, ama asıl önemli olan, sayfanın neden yavaş kaldığının kesin nedenini ortaya çıkarmak zorundasınız. Kusurlu bir ağ mümkündür; diğer faktörlerin yavaş performansa katkıda bulunması da mümkündür.
Daha fazla teşhis etmek için:
- Sayfa Firefox'ta iyi yüklüyse , Firebug'daki Ağ sekmesi arkadaşınızdır (Vur F12, ardından Ağ sekmesine gidin ve sayfayı yeniden yükleyin). Firebug, sayfanın nasıl yüklendiği ve gecikmelerin nerede olduğu konusunda size güzel bir şelale diyagramı verir
- Sayfa Chrome'a iyi yüklenirse, benzer bir şey yapabilirsiniz (Hit CntlShiftI, ağ sekmesini tıklayın ve sayfayı yeniden yükleyin).
- Sayfa yalnızca IE'de destekleniyorsa (btw, HTML geliştiricilerinizde utanç), en iyi seçeneğiniz,
curl
çok yavaş görünen bir şey bulana kadar bu ASP sayfa öğelerinin her birini ayrı ayrı yüklemeye başlamaktır , ardından bu öğenin nedenini öğrenin yavaş.
BTW, Chrome ve Firefox örnekleri Debian.org'dan bir CGI sorgusu kullandı ; bu bir CGI aramasından kaynaklanan gecikmeye iyi bir örnektir.
Herkes başarısız olduğunda, bir elde edebilirsiniz .pcap
gelen wireshark ve içinden çalıştırmak tcptrace
; Bununla birlikte, tcptrace
paket dökümlerini analiz etmede çok iyi olsa da, sorunu tcptrace
tek başına izole edebileceğinizin garantisi yoktur . Teşhis kullanma hakkında bilgi için bu cevaba bakınız tcptrace
.