Azure Uygulama Hizmetinde% 100 CPU kullanımının nedenini nasıl belirleyebilirim?


12

Bir Azure Uygulama Hizmet Planı'nda, farklı istemciler için aynı uygulamanın farklı kopyalarının beş kopyası var. Bir SQL veritabanı ile bir ASP.NET MVC uygulaması.

Bu sabah yavaş ve yanıt vermeyen sitelere uyandım, bazen 503 hatasına neden oldum. Uygulama Hizmet Planı için CPU / Bellek metriklerini kontrol ettikten sonra CPU'nun% 100 sabitlendiğini keşfettim:

% 100'de CPU

Ve her bir sitenin CPU zamanının grafiği, hepsinin aynı anda gittiğini gösterir, ancak bazıları diğerlerinden daha kötüdür:

Bireysel Siteler CPU kullanımı

Gelişmiş Uygulama Yeniden Başlatma yaparak sorunu çözmeye çalıştım, ancak blade yüklenmeyecek - yanıt veremeyen sunucudan bilgi almaya çalıştığı için varsayıyorum.

Sonunda, sitelerin her birini tek tek durdurmaya çalıştım, bu da CPU'yu sıfıra getirdi, sonra tekrar başlattı, bu da sorunu çözmüş gibi görünüyordu, ancak şimdi birkaç tanesi geri tırmanmaya başlıyor.

Birkaç hafta önce benzer bir sorun yaşadım ve Uygulama Planım için çok büyük büyüdüğümü varsaydım, bu yüzden S1'den S2'ye yükseltildim ve bugüne kadar iyi oldu.

Bu CPU'nun aç davranışının nedeninin ne olduğunu nasıl anlayacağım konusunda tam bir kayıptayım. Birisi bana bunu nasıl teşhis etmeye başlayabileceğim konusunda doğru yönü gösterebilir mi?


Bu Azure uygulama hizmeti planlarında biraz oluyor gibi görünüyor, MS ile iletişime geçtiniz mi? - herhangi bir değişiklik yapmadığınız sürece, platformda bir sorun olduğunu bildiririm.
Sum1sAdmin

Onlarla bir destek planım yok, bu yüzden onları bilgilendirmenin bir yolu olduğunu düşünmeyin. Sadece% 100 CPU sorunları rastgele yaşayacaksam biraz endişeleniyorum - başka bir tedarikçi araması gerekebilir. Sizce iki vakanın olması size yardımcı olur mu?
littlecharva

Technet gibi açık forumları kullanırdım - eğer önemliyse ölçeklendirebilirsiniz, ancak düzeltmeleri gereken bir şey için daha fazla ödeme yapmam, eğer durum buysa.
Sum1sAdmin

Yanıtlar:


6

Bu sorunu birkaç kez yaşadık ve her seferinde GC (çöp toplama) tükendi. Kanıtlamak ve teşhis etmek zordur, ancak yaptığım şey kudo (scm) sitesini kullanmak, tools => support (sizi uygulamalar için destek sitesine götürmek).

Buradan dizininizi (birkaçına sahipseniz) ve siteyi seçin, Analiz Et => Metrikler'i ve ardından Tanıla düğmesini tıklayın ( NOT , bu adımların herhangi bir zamanda değişebilmesi için zaten değişti), sonra tekrar Analiz Et>> Dianotics'e Sonunda bir Bellek Dökümü => "Analiz durumu" raporu alırsınız. Bu bir mht dosyası (nefret dolu tarayıcı IE veya Edge'de açabilirsiniz) olmalı, sonra "gc" anahtarını aramalıdır.

"GCFrame" gibi şeylerle ilgili bazı ilginç çağrı yığını çerçeveleri veya daha ilginç bir şekilde "System.Threading.WaitHandle.WaitMultiple" çağrılarını bulabilirsiniz, bunlardan çok fazla alırsanız, sistem çöp toplama ile ilgili sorunlar yaşıyor olabilirsiniz .

Bunu nasıl çözebilirim? Bu, diğer pek çok konuda ele alınan bir konudur, çünkü "IE 6'nın hala kullanımda olduğu bir dünyada nasıl yaşıyorum?"


1
Bu taşındı. Artık "Sorunları Tanı ve Çöz -> Tanılama Araçları-> Bellek Dökümü Topla" adresindeki Uygulama Hizmetinde (scm sitesi değil, normal Azure sitesi) yer almaktadır
Josh Noe

3

En iyi bahsiniz bu uygulama için Yeni Kalıntı veya Uygulama Trendleri yüklemek olacaktır. Uygulama Hizmeti -> Araçlar -> Performans İzleme ile kolayca kurulabilir. Bu, hem sunucu hem de istemci tarafında neler olup bittiğini ayrıntılı bir şekilde görüntüleyecektir.

Uygulama İzleme

Makale: Azure web uygulaması performansını izleme

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.