ASP.NET performansının 32bit / 64bit sunucu arasında azalması


9

Şu anda 32bit üretim sunucumuzu ASP.NET 4'e yükseltirken daha güçlü bir 64bit sunucuya yükseltme sürecindeyiz. Ancak, hafif yük testi yaptıktan sonra performans düşüşü yaşıyoruz!

Birkaç basit kullanım durumu gerçekleştiren 20 kullanıcının sabit yükü ile basit bir yük testi oluşturdum ve sonuçları karşılaştırdım:

Sayfa yanıtları

Gördüğünüz gibi, en yüksek performanslı yapılandırma ASP.NET 2.0 ile mevcut 32 bit sunucudur.

IIS'yi 64 bit makinede 32 bit modunda çalıştırarak, mevcut 32 bit sunucu ile oldukça karşılaştırılabilir olduğunu, ancak IIS'yi 64 bit sunucuda 64 bit modunda çalıştırdığınızda performansın daha kötü olduğunu görebilirsiniz. Yeni sunucu daha iyi göz önüne alındığında, bunun neden olduğundan emin değilim.

Nedense, testi 64bit'te IIS ile her çalıştırdığımda, başlangıçta büyük bir artış olur, o zaman ortaya çıkar, ancak yine de 32bit'ten daha yüksek bir yanıt süresiyle. IIS'yi 32 bit modunda çalıştırdığımda ani artış gider.

64 bit başak

Uygulama havuzunun / uygulamanın testler arasında yeniden başlatılmadığını, ancak ani artışın sürekli olduğunu ve yanıtın diğer yapılandırmalardan daha yüksek olduğunu unutmayın.

Yani - sorum şu: bunun neden olduğu hakkında bir fikri olan var mı? Ayarlamam gereken yapılandırma ayarları var mı? Fark yaratan şeyi nasıl daraltabileceğime dair bazı işaretçiler var mı?

Geçerli üretim sunucusu: Win Server 2003 - 32bit - IIS6

Yeni sunucu: Win Server 2003 R2 - 64bit - IIS6

Yanıtlar:


4

Belgelere göre MS, bir web uygulaması olarak 64 bit sunucuda 32 bit uygulama havuzları çalıştırmayı yeniden önerir (zaten dahili olarak).

32 bit uygulamalar her zaman daha performanslıdır - daha küçük işaretçiler, belirli bir talimat kümesi için daha az bellek gerektiği anlamına gelir, bu da daha iyi önbellek isabet oranları anlamına gelir.

64 bitlik işlemler yalnızca bir anlam ifade eder - bir işlem gerçekten daha fazla belleğe ihtiyaç duyduğunda. Eğer web ön ucunu sadece (ön uç) yapıyorsa, o kadar fazla belleğe ihtiyaç duymasının bir nedeni yoktur;)

Üstelik, daha performanslı sürümlere geçmek gerçekten mantıklı. IIS6 büyük performans sergiledi - ASP.NET / yönetilen kodu çalıştırırsanız IIS 7.5 çok daha iyi.


İlginç, teşekkürler. Daha fazla okuma yapabilmem için tavsiye ile MS dokümanı için bir bağlantınız olduğunu düşünmüyorum? Ne yazık ki II7 + kullanamıyorum çünkü
Win2k3'e bağlıyım

IIS.net - barındırma yönergeleri;) iis 7 için,)
TomTom

"Web uygulaması zaten daha fazla bellek kullanmamalı" gibi görünüyor Bill Gates 80'lerde söyledi bir şey :) Yönergeleri için bir bağ var mı?
Fredrik Johansson

2

Bunu Windows 2K3 sunucumuzda denedik ve aynı şeyi aldım, o zaman burada değildim ama MS'in 64Kit .Net'i 2K3'te uyguladığı yolla ilgisi vardı (emin değilim ama bana söyleyen kişi bir MVP yani Onun sözünü alacağım.)

Ve sadece Win2K8'e geçerseniz, burada sunucularımızla yaptığımla aynı şeyi görebileceğinizi ve aynı performans sorununu aldığınızı bilmeniz için. Ne söylendi ve 64Bit yararlanmak için biraz okuma. Net entegre boru hatlarının kullanılması tavsiye edilir ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx )

Üzgünüm bu sorunuzu cevaplamıyor ama bu konuyu gören tek kişi olmadığını size bildireceğim.

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.