Azure'da Web Apps için uygulama performansı hakkında SSS
Makale
Not
Aşağıdaki yönergelerden bazıları yalnızca Windows veya Linux Uygulama Hizmetleri üzerinde çalışabilir. Örneğin, Linux App Services varsayılan olarak 64 bit modunda çalışır.
Azure sorununuz bu makalede giderilmiyorsa MSDN ve Stack Overflow'daki Azure forumlarını ziyaret edin. Sorununuzu bu forumlara gönderebilir veya Twitter'da @AzureSupport gönderebilirsiniz. Ayrıca bir Azure desteği isteği gönderebilirsiniz. Destek isteği göndermek için Azure desteği sayfasında Destek al'ı seçin.
Tüm Web Uygulamaları durdurulduğunda bile App Service Planım neden CPU/Bellek kullanımını görüntülüyor?
Azure Uygulaması Hizmeti, güvenlik güncelleştirmeleri, SCM konsolunun kullanılabilirliği, uygulama izleme, kimlik doğrulaması ve Web Uygulamanızın diğer önemli özellikleri gibi çeşitli platform işlemlerini ve özelliklerini işleyen sürekli sistem işlemleri gerektirir.
Sistem işlemleri, çalışan Web Uygulaması olmasa veya App Service Planı web uygulaması içermiyor olsa bile App Service Planlarında çalışır.
Platform işlemleri en az miktarda kaynak (CPU, Bellek ve Disk alanı gibi) tüketir ve aynı durum App Service Planının kapasite planlaması, izleme ve otomatik ölçeklendirme tetikleyici yapılandırması sırasında hesaba katılmalıdır.
Uygulamam neden yavaş?
Yavaş uygulama performansına birden çok faktör katkıda bulunabilirsiniz. Ayrıntılı sorun giderme adımları için bkz . Yavaş web uygulaması performansı sorunlarını giderme.
Yüksek CPU tüketimi senaryosunda sorun giderme Nasıl yaparım??
Bazı yüksek CPU tüketimi senaryolarında uygulamanız gerçekten daha fazla bilgi işlem kaynağı gerektirebilir. Bu durumda, uygulamanın ihtiyaç duyduğu tüm kaynakları alması için daha yüksek bir hizmet katmanına ölçeklendirmeyi göz önünde bulundurun. Diğer durumlarda, yüksek CPU tüketimi hatalı bir döngüden veya bir kodlama uygulamasından kaynaklanabilir. Artan CPU tüketimini tetikleyen şeyler hakkında içgörü elde etme, iki bölümden oluşan bir işlemdir. İlk olarak bir işlem dökümü oluşturun ve ardından işlem dökümünü analiz edin. Daha fazla bilgi için bkz . Web Apps için yüksek CPU tüketimi için döküm dosyasını yakalama ve analiz etme.
Yüksek bellek tüketimi senaryosunda sorun giderme Nasıl yaparım??
Bazı yüksek bellek tüketimi senaryolarında uygulamanız gerçekten daha fazla bilgi işlem kaynağı gerektirebilir. Bu durumda, uygulamanın ihtiyaç duyduğu tüm kaynakları alması için daha yüksek bir hizmet katmanına ölçeklendirmeyi göz önünde bulundurun. Diğer durumlarda koddaki bir hata bellek sızıntısına neden olabilir. Kodlama uygulaması bellek tüketimini de artırabilir. Yüksek bellek tüketimini tetikleyen şeyler hakkında içgörü elde etme, iki bölümden oluşan bir işlemdir. İlk olarak bir işlem dökümü oluşturun ve ardından işlem dökümünü analiz edin. Azure Site Uzantısı Galerisi'nden Kilitlenme Tanılayıcısı bu iki adımı da verimli bir şekilde gerçekleştirebilir. Daha fazla bilgi için bkz . Web Apps için aralıklı yüksek bellek için döküm dosyasını yakalama ve analiz etme.
PowerShell kullanarak App Service web uygulamalarını otomatikleştirmek Nasıl yaparım??
App Service web uygulamalarını yönetmek ve bakımını yapmak için PowerShell cmdlet'lerini kullanabilirsiniz. PowerShell kullanarak Azure Uygulaması Hizmeti'nde barındırılan web uygulamalarını otomatikleştirme blog gönderimizde, yaygın görevleri otomatikleştirmek için Azure Resource Manager tabanlı PowerShell cmdlet'lerinin nasıl kullanılacağını açıklıyoruz. Blog gönderisinde ayrıca çeşitli web uygulamaları yönetim görevleri için örnek kod da bulunur.
Tüm App Service web uygulamaları cmdlet'lerinin açıklamaları ve söz dizimi için bkz . Az.Websites.
Web uygulamamın olay günlüklerini Nasıl yaparım? görüntüleyin?
Web uygulamanızın olay günlüklerini görüntülemek için:
Kudu web sitenizde (https://*yourwebsitename*.scm.azurewebsites.net) oturum açın.
Menüden Hata Ayıklama Konsolu>CMD'sini seçin.
LogFiles klasörünü seçin.
Olay günlüklerini görüntülemek için eventlog.xml yanındaki kalem simgesini seçin.
Günlükleri indirmek için PowerShell cmdlet'ini Save-AzureWebSiteLog -Name webappnameçalıştırın.
Web uygulamamın kullanıcı modu bellek dökümünü yakalamak Nasıl yaparım??
Web uygulamanızın kullanıcı modu bellek dökümünü yakalamak için:
Kudu web sitenizde (https://*yourwebsitename*.scm.azurewebsites.net) oturum açın.
İşlem Gezgini menüsünü seçin.
w3wp.exe işlemine veya Web İşi işleminize sağ tıklayın.
Bellek Dökümü Tam Dökümünü> İndir'i seçin.
Web uygulamam için işlem düzeyi bilgilerini Nasıl yaparım? görüntüleyebilirsiniz?
Web uygulamanız için işlem düzeyi bilgilerini görüntülemek için iki seçeneğiniz vardır:
Azure portalında:
Web uygulaması için İşlem Gezgini'ni açın.
Ayrıntıları görmek için w3wp.exe işlemini seçin.
Kudu konsolunda:
Kudu web sitenizde (https://*yourwebsitename*.scm.azurewebsites.net) oturum açın.
İşlem Gezgini menüsünü seçin.
w3wp.exe işlemi için Özellikler'i seçin.
Uygulamama göz attığımda "Hata 403 - Bu web uygulaması durduruldu" iletisini görüyorum. Nasıl yaparım? çözümlensin mi?
Bu hataya üç koşul neden olabilir:
Web uygulaması bir faturalama sınırına ulaştı ve siteniz devre dışı bırakıldı.
Web uygulaması portalda durduruldu.
Web uygulaması, Ücretsiz veya Paylaşılan ölçek hizmeti planı için geçerli olabilecek bir kaynak kotası sınırına ulaştı.
boşta kalma süresinden sonra ilk isteğin yanıt süresini Nasıl yaparım? azaltılsın mı?
Varsayılan olarak, belirli bir süre boşta kalan web uygulamaları kaldırılır. Bu şekilde sistem kaynak tasarrufu sağlayabilir. Bunun dezavantajı, web uygulamasının yüklenmesine ve yanıt vermeye başlamasına izin vermek için web uygulaması kaldırıldıktan sonra ilk isteğe verilen yanıtın daha uzun olmasıdır. Temel ve Standart hizmet planlarında, uygulamanın her zaman yüklü kalmasını sağlamak için AlwaysOn ayarını açabilirsiniz. Bu, uygulama boşta kaldığında daha uzun yükleme sürelerini ortadan kaldırır. AlwaysOn ayarını değiştirmek için:
Azure portalında web uygulamanıza gidin.
Yapılandırma'ya tıklayın
Genel ayarlar'ı seçin.
Always On için Açık'ı seçin.
Başarısız istek izlemeyi Nasıl yaparım? açabilirsiniz?
Başarısız istek izlemeyi açmak için şu adımları izleyin:
Azure portalında web uygulamanıza gidin.
Tüm Ayarlar>Tanılama Günlükleri'ne tıklayın.
Başarısız İstek İzleme için Açık'ı seçin.
Kaydet'i seçin.
Web uygulaması dikey penceresinde Araçlar'ı seçin.
Visual Studio Online'ı seçin.
Ayar Açık değilse Açık'ı seçin.
Git'i seçin.
Web.config'i seçin.
system.webServer'da aşağıdaki yapılandırmayı ekleyin (belirli bir URL'yi yakalamak için):
Başarısız istek izlemelerini indirmek için portalda web sitenize gidin.
Araçlar>Kudu Go'yu> seçin.
Menüden Hata Ayıklama Konsolu>CMD'sini seçin.
LogFiles klasörünü seçin ve ardından W3SVC ile başlayan bir adla klasörü seçin.
XML dosyasını görmek için kalem simgesini seçin.
"Çalışan İşlemi 'Yüzde Bellek' sınırı nedeniyle geri dönüşüm istedi" iletisini görüyorum. Bu sorunu Nasıl yaparım? giderin?
32 bit işlem için kullanılabilir bellek miktarı üst sınırı (64 bit işletim sisteminde bile) 2 GB'tır. Varsayılan olarak, çalışan işlemi App Service'te 32 bit olarak ayarlanır (eski web uygulamalarıyla uyumluluk için).
Web Çalışanı rolünüzdeki ek belleklerden yararlanmak için 64 bit işlemlere geçmeyi göz önünde bulundurun. Bu eylem bir web uygulamasının yeniden başlatılmasını tetikler, dolayısıyla uygun şekilde zamanlayın.
Ayrıca, 64 bitlik bir ortamın Temel veya Standart hizmet planı gerektirdiğini unutmayın. Ücretsiz ve Paylaşılan planlar her zaman 32 bitlik bir ortamda çalışır.
Daha fazla bilgi için bkz . App Service'te web uygulamalarını yapılandırma.
İsteğim neden 230 saniye sonra zaman aşımına uğradı?
Azure Load Balancer'ın varsayılan boşta kalma zaman aşımı ayarı dört dakikadır. Bu ayar genellikle bir web isteği için makul bir yanıt süresi sınırıdır. bu nedenle, uygulamanız yaklaşık 240 saniye içinde (Windows uygulamasında 230 saniye, Linux uygulamasında 240 saniye) bir yanıt döndürmezse App Service istemciye bir zaman aşımı döndürür. Web uygulamanız arka plan işleme gerektiriyorsa Azure Webjobs kullanmanızı öneririz. Azure web uygulaması Webjobs'u çağırabilir ve arka plan işleme tamamlandığında bildirim alabilir. Kuyruklar ve tetikleyiciler dahil olmak üzere Web İşleri'ni kullanmak için birden çok yöntem arasından seçim yapabilirsiniz.
Web İşleri arka plan işleme için tasarlanmıştır. Web İşi'nde istediğiniz kadar arka plan işlemi yapabilirsiniz. Web İşleri hakkında daha fazla bilgi için bkz . Web İşleri ile arka plan görevlerini çalıştırma.
ASP.NET App Service'te barındırılan Temel uygulamalar bazen yanıt vermeyi durdurur. Bu sorun Nasıl yaparım? düzeltildi?
Önceki kestrel sürümüyle ilgili bilinen bir sorun, App Service'te barındırılan bir ASP.NET Core 1.0 uygulamasının zaman zaman yanıt vermeyi durdurmasına neden olabilir. Şu iletiyi de görebilirsiniz: "Belirtilen CGI Uygulaması bir hatayla karşılaştı ve sunucu işlemi sonlandırdı."
Bu sorun Kestrel sürüm 1.0.2'de düzeltildi. Bu sürüm ASP.NET Core 1.0.3 güncelleştirmesine dahildir. Bu sorunu çözmek için uygulama bağımlılıklarınızı Kestrel 1.0.2 kullanacak şekilde güncelleştirdiğinizden emin olun. Alternatif olarak, App Service web uygulamalarında Core 1.0 yavaş performans sorunları ASP.NET blog gönderisinde açıklanan iki geçici çözümden birini kullanabilirsiniz.
Günlük dosyalarımı web uygulamamın dosya yapısında bulamıyorum. Onları nasıl bulabilirim?
App Service'in Yerel Önbellek özelliğini kullanırsanız, App Service örneğinin LogFiles ve Veri klasörlerinin klasör yapısı etkilenir. Yerel Önbellek kullanıldığında, depolama LogFiles ve Veri klasörlerinde alt klasörler oluşturulur. Alt klasörler"benzersiz tanımlayıcı" + zaman damgası adlandırma desenini kullanır. Her alt klasör, web uygulamasının çalıştığı veya çalıştırıldığı bir VM örneğine karşılık gelir.
Yerel Önbellek kullanıp kullanmadığınızı belirlemek için App Service Uygulaması ayarları sekmenizi denetleyin. Yerel Önbellek kullanılıyorsa, uygulama ayarı WEBSITE_LOCAL_CACHE_OPTION olarak Alwaysayarlanır.
Yerel Önbellek kullanmıyorsanız ve bu sorunla karşılaşıyorsanız bir destek isteği gönderin.
"Erişim izinleri tarafından bir yuvaya erişim yasaklı bir şekilde erişim girişiminde bulunuldu" iletisini görüyorum. Bu hatayı Nasıl yaparım? düzeltebilirsiniz?
Bu hata genellikle VM örneğindeki giden TCP bağlantıları tükenirse oluşur. App Service'te, her VM örneği için yapılabilecek en fazla giden bağlantı sayısı için sınırlar uygulanır. Daha fazla bilgi için bkz . Vm'ler arası sayısal sınırlar.
Bu hata, uygulamanızdan yerel bir adrese erişmeye çalıştığınızda da oluşabilir. Daha fazla bilgi için bkz . Yerel adres istekleri.
Web uygulamanızdaki giden bağlantılar hakkında daha fazla bilgi için Azure web sitelerine giden bağlantılar hakkındaki blog gönderisine bakın.
App Service web uygulamamda uzaktan hata ayıklamak için Visual Studio'yu Nasıl yaparım??
Visual Studio kullanarak web uygulamanızda hata ayıklamayı gösteren ayrıntılı bir izlenecek yol için bkz . App Service web uygulamanızda uzaktan hata ayıklama.
Azure İşlevleri oluşturmak, web uygulamalarını uygulamak ve yönetmek, Azure depolamayı kullanan çözümler geliştirmek ve daha fazlasını yapmak için Microsoft Azure'da uçtan uca çözümler oluşturun.
Azure Uygulaması Hizmeti'nde bir web uygulamasına, mobil uygulama arka ucuna veya API uygulamasına mevcut bir özel DNS etki alanı adı (gösterim etki alanı) eklemeyi öğrenin.