2010-09-23 29 views
6

Üretim sunucumuzdaki W3WP işlemimiz sürekli yüksek. % 100 azami değil,% 90'lık bir seviyeye kadar atlar. Bunu incelemeye yardımcı olmak için JetBrains dotTrace kullanarak canlı uygulamayı profilledim.JetBrains kullanarak W3WP CPU sorunlarını belirleme dotTrace

Sonuçlar beklendiği gibi idi. Tüm yavaş yöntemler veritabanımızı sorgulayan NHibernate fonksiyonlarıydı. Benim sorum şu ki, bu yavaş yöntemler veritabanı sunucumuzun ayrı bir makinede olduğu gibi web sunucumuzdaki CPU'yu etkileyecek. Şüphesiz veritabanı sunucusu bir iş yapıyorsa, web sunucusu jsut bir yanıt bekler ve CPU yukarı çıkmamalı mı?

Böyle bir durumda, başka bir yerden bir yanıt beklemek yerine, sunucunun tersine CPU'nun kullanıldığı yerde çalışmak için dotTrace'i (veya gerekirse başka bir aracı) nasıl kullanabilirim? sıcak noktalar alt text

Çoğu zaman tamamlamak için dış HTTP istekleri için bekleyen harcamak ekran görüntüsünden, bir

dotTrace ekran görüntüsü. Ancak, bunlar web sunucusundaki CPU kullanımını etkilememelidir.

+0

dotTrace profilinin bazı ilgili ekran görüntülerini gönderir misiniz? –

+0

Hotspot ekran görüntüsünü ekledim –

+0

Sorunu çözdünüz mü? Kötülüğün kaynağını bulmak için hangi araçları kullandınız? – Pavel

cevap

2

Ben web sunucunuzda sıkı bir çalışma yapan NHibernate olabilir ve veritabanı aslında nispeten az.

Gerçekten SQL Server'ın tek bir çağrıda (NHibernate'den) uzun bir zaman alabilmesinin gerçekten mümkün olup olmadığını görmek için bir SQL uzmanı çalıştırmanızı öneririm.

Tahminimce, NHibernate'in veritabanına çok sayıda çağrı yaptıklarını ve daha sonra bunları (erb sunucu sunucunuzda) işlediğini ve yüksek CPU'dan sorumlu olduğunu göreceksiniz.

Eğer birleşme noktalarında çok fazla tempolu bir alımınız varsa, NHibernate'in birçok veri yapması durumunda, veritabanına bir çağrı için veri almak için birçok çağrı alabilirsiniz.

+0

Veritabanı sorguları nispeten hızlı bir şekilde geri dönüyor ve yalnızca gerektiğinde veritabanını sorguladığımızı kontrol ettim. NHibernate çağrılarının en uzun sürdüğünü sanmıyorum, fakat bunların yüksek CPU'yla eşleşmesi mantıklı mı? –

İlgili konular