2009-11-05 14 views
5

Dan Farino tarafından harika bir presentation10, MySpace.com adresindeki Baş Sistemleri Mimarı, belirli bir süreçte çalışan tüm konuları işleyen bir web tabanlı yığın döküm aracını sergilemektedir (ne yapıyorlar, ne kadar süreWeb Tabanlı Yığın Aracı ASP.NET için Mdbg Kullanarak?

Bunların teknikler de highscalability.com özetlenmiştir vs.), gerçekleştirmektedir:

  • PerfCollector.
    Merkezileştirilmiş UDP aracılığıyla performans verilerinin toplanması. Windows ve 'dan daha güvenilir olan herhangi bir istemci, istatistiklerini bağlayabilir ve görebilir.
  • Web Tabanlı Yığın Döküm Aracı.
    Sorunlu bir sunucuda sağ tıklatıp .Net yönetilen konuların yığın dökümünü alabilirsiniz. RDC ürününe sahip olmak ve bir hata ayıklayıcı eklemek ve 1/2 daha sonra yanıt almak için kullanılır. Yavaş, ölçeklenebilir ve sıkıcı. Sadece bir yığın dökümü, iş parçacığının ne yaptığını hakkında çok sayıda bağlam verir. Sorun Giderme daha kolay çünkü görebildiğiniz için veritabanında 90 iş parçacığı engellenmiş olabilir, bu nedenle veritabanı kapalı olabilir.
  • Web Base Öbek Döküm Aracı.
    Tümü bellek ayırmalarını döker. geliştiricileri için çok kullanışlıdır. Saat el ile yaptık. • Profiler. Baştan sona numaralı bir isteği izler ve bir raporu üretir. URL, yöntemler, durum, , 'un yavaş bir isteği tanımlamanıza yardımcı olacak her şeye bakın. kilit içeriğine bakar, istisnalar atılıyor, bir çok ilginç olabilir. Çok hafif ağırlık. ürününde bir kutuda üretimindeki her bir VIP (100 sunucu grubu) üzerinde çalışıyor. Numuneler 1 her 10 saniyede bir diş. Her zaman arka planda izleme.

Soru: ASP.NET için web tabanlı bir yığın dökümü aracı oluşturmak için hangi araçlara ihtiyaç vardır? Kolaylık sağlamak için, hedef AppDomain'de barındırılan * .aspx'in, bu süreçteki tüm yönetilen çağrı yığınlarını çıkarabilmesi yeterli olduğunu varsayalım. \ Program Files:

genelde C (CLR 2 SDK ile nakliye başladı C#/IL tamamen yazılmış yönetilen kod debugger) MDBG kullanımını kapsayan birkaç mesaj ve mdbgcore montaj vardır \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin:

Bir çözüm, istenen çıktıyı üretmek için bu montajı basitçe referans alır mı?Üretim trafiğine hizmet eden çalışan bir süreçte "yönetilen tüm çağrı yığınlarını listeleme" işleminin etkisi nedir?

cevap

3

.Net'in profil oluşturma API'sinin gitmenin yolu olduğuna inanıyorum. Bir ASP.NET senaryosunda nasıl uyum sağlayıp geliştirileceğini kontrol edebileceğiniz canlı bir örneğe sahip olmak için, canlı bir örneğe sahip olmanız için Google Code'daki SlimTune projesine bakın.Net bir profil API sayesinde Selamlar Massimo

2

sunucuyu durdurmak zorunda ve bunu çok CPU'yu alır (ama size tüm adlandırılan yöntemlere üzerinde tam kontrol sağlayan). 1) ayıklayıcı uygulama durur ve bir listesini oluşturur:

Ben en çok “hafif yol” çözüm MDBG ile bunu yapmaya olduğunu düşünüyorum, ben çok küçük ama kullanışlı küçük uygulama aşağıdaki yaptığı StackDump denilen araya İşlem için çalışan tüm CLR yığınları. 2) Uygulama tekrar başlatıldı. Bu işlem hızlı bir işlemdir ve değişmeyen üretim kodu olan çalışan bir üretim sunucusunda (belki) çalıştırılabilir.

Bunu yönetmek için sadece 80 satır .Net kodu. Codeplex'te source code yayınladım.

İlgili konular