Azure App Service için web uygulamaları performansı, kullanılabilirliği ve uygulama sorunları

Not

Aşağıdaki yönergelerden bazıları yalnızca Windows Uygulaması Service veya Linux App Service üzerinde çalışabilir. Örneğin, Linux App Service varsayılan olarak 64 bit modunda çalışır.

Özet

Bu makale, Azure App Service’in web uygulamaları özelliği için uygulama performansı sorunları hakkında sık sorulan soruları (SSS) yanıtlamaktadır.

Çeşitli App Service planlarının kotaları ve sınırları hakkında nereden daha fazla bilgi edinebilirim?

Kotalar ve sınırlamalar hakkında bilgi için bkz. App Service sınırlamaları.

App Service planım tüm web uygulamaları durdurulduğunda bile CPU veya bellek kullanımını görüntülüyor

App Service, güvenlik güncelleştirmeleri, SCM (Kudu) konsolunun kullanılabilirliği, uygulama izleme, kimlik doğrulaması ve diğer birçok web uygulaması özelliği 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ında web uygulaması olmasa bile App Service planlarında çalıştırılır.

Platform işlemleri en az miktarda kaynak (CPU, bellek ve disk alanı gibi) kullanır ve bir App Service planının kapasite planlaması, izleme ve otomatik ölçeklendirme tetikleyici yapılandırması sırasında bu kaynakları hesaba katmalısınız.

Uygulama performansım 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.

Tip

  • Uygulamanızı sıcak tutmak ve soğuk başlatmaları önlemek için Yapılandırma> altında AlwaysOn ayarını etkinleştirin. Bu ayar özellikle Temel ve daha yüksek planlarda boşta kalma süresi sonrası gecikmeyi azaltmaya yardımcı olur.
  • Uygulama durumunu izlemek ve yanıt vermeyen örnekleri otomatik olarak değiştirmek için sistem durumu denetim yolunu yapılandırın. Bu yapılandırma kullanılabilirlik ve performansın korunmasına yardımcı olur. Daha fazla bilgi için bkz. Sağlık kontrolü kullanarak App Service örneklerini izleme.

Yüksek CPU tüketimi sorunlarını nasıl giderebilirim?

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üketiminde döküm dosyası yakalama ve çözümleme.

Yüksek bellek tüketimi sorunlarını nasıl giderebilirim?

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 Extension Gallery'deki Çökme Tanılayıcısı bu iki adımın her ikisini de verimli bir şekilde gerçekleştirebilir. Daha fazla bilgi için bkz: Web Apps için aralıklı yüksek bellek kullanımında döküm dosyası 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. Yaygın görevleri otomatikleştirmek için Azure Resource Manager tabanlı PowerShell cmdlet'lerini kullanma hakkında daha fazla bilgi için bkz. powershell kullanarak Azure App Service barındırılan web uygulamalarını otomatikleştirme.

Not

Geçerli otomasyon betikleri için en son Az.Websites modülünü kullanın. Eski AzureRM modül kullanım dışıdır.

Web uygulamamın sorunlarını gidermek için bilgi toplamam gerekiyor

Web uygulamasının olay günlüklerini görüntüleme

Web uygulamasının olay günlüklerini görüntülemek için şu adımları izleyin:

  1. Kudu web sitenizde (https://*yourwebsitename*.scm.azurewebsites.net) oturum açın.
  2. Menüden Hata Ayıklama Konsolu>CMD'yi seçin.
  3. LogFiles klasörünü seçin.
  4. Olay günlüklerini görüntülemek için eventlog.xml yanındaki kalem simgesini seçin.
  5. Günlükleri indirmek için PowerShell cmdlet'ini Save-AzureWebSiteLog -Name webappnameçalıştırın.

Bir web uygulamasının kullanıcı modu bellek dökümünü oluşturma

Bir web uygulamasının kullanıcı modu bellek dökümünü yakalamak için şu adımları izleyin:

  1. Kudu web sitenizde (https://*yourwebsitename*.scm.azurewebsites.net) oturum açın.
  2. İşlem Gezgini menüsünü seçin.
  3. w3wp.exe işlemine veya WebJob işleminize sağ tıklayın.
  4. Bellek Dökümünü İndir>Tam Döküm seçeneğini belirleyin.

Web uygulaması için işlem düzeyi bilgilerini görüntüleme

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:

    1. Web uygulaması için İşlem Gezgini'ni açın.
    2. Ayrıntıları görmek için w3wp.exe işlemini seçin.
  • Kudu konsolunda:

    1. Kudu web sitenizde (https://*yourwebsitename*.scm.azurewebsites.net) oturum açın.
    2. İşlem Gezgini menüsünü seçin.
    3. w3wp.exe işlemi için Özellikler'i seçin.

App Service'in yerel önbellek özelliğini kullanırken günlük dosyalarımı web uygulamamın klasör yapısında bulamıyorum

App Service'in yerel önbellek özelliğini kullanırsanız, Bu özellik App Service örneğinin LogFiles ve Data klasörlerinin klasör yapısını etkiler. Yerel önbellek kullanıldığında, sistem depolama LogFiles ve Veri klasörlerinde alt klasörler oluşturur. Alt klasörler, "benzersiz tanımlayıcı" ve zaman damgasından oluşan adlandırma düzenini kullanır. Her alt klasör, web uygulamasının çalıştığı veya çalıştırıldığı bir sanal makine (VM) örneğine karşılık gelir.

Yerel önbellek kullanıp kullanmadığınızı belirlemek için App Service Uygulaması ayarları sekmenize bakın. Sistem yerel önbellek kullanıyorsa, uygulama ayarı WEBSITE_LOCAL_CACHE_OPTION olarak Alwaysayarlanır.

Başarısız istek izlemeyi açmak için

Başarısız istek izlemeyi açmak için şu adımları izleyin:

  1. Azure portalında web uygulamanıza gidin.

  2. Tüm Ayarlar>Tanılama Günlükleri seçin.

  3. Başarısız İstek İzleme için Açık seçeneğini belirleyin.

  4. Kaydet'i seçin.

  5. Web uygulaması dikey penceresinde Araçlar'ı seçin.

  6. Visual Studio Online'ı seçin.

  7. Ayar Açık değilse, Açık seçin.

  8. Git'i seçin.

  9. Web.config'i seçin.

  10. system.webServer'da aşağıdaki yapılandırmayı ekleyin (belirli bir URL'yi yakalamak için):

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*api*" />
    <add path="*api*">
    <traceAreas>
    <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  11. Yavaş performans sorunlarını gidermek için bu yapılandırmayı ekleyin (yakalama isteği 30 saniyeden uzun sürüyorsa):

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*" />
    <add path="*">
    <traceAreas> <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions timeTaken="00:00:30" statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  12. Başarısız istek izlemelerini indirmek için Azure portalında web sitenize gidin.

  13. AraçlarKudu Go'yu>> seçin.

  14. Menüden Hata Ayıklama Konsolu>CMD'yi seçin.

  15. LogFiles klasörünü seçin ve ardından W3SVC ile başlayan bir adla klasörü seçin.

  16. XML dosyasını görmek için kalem simgesini seçin.

Performans ve dayanıklılık için ek öneriler

  • App Service uygulamanızın telemetri, bağımlılık izleme ve canlı ölçümler gibi tam yığın gözlemlenebilirliği için Application Insights ve Azure İzleyici'yi kullanın.

  • Kullanılabilirlik alanlarını destekleyen bölgelerde dağıtım gerçekleştiriyorsanız bölgesel kesintiler sırasında dayanıklılığı artırmak için bölge yedekliliğini etkinleştirmeyi göz önünde bulundurun. Daha fazla bilgi için bkz. Azure Uygulaması Hizmetinde Güvenilirlik.

  • App Service, platform güvenilirliğini sağlamak için rutin bakımdan geçer. Özellikle App Service Ortamı v3'te güncelleştirme davranışı üzerinde daha fazla denetim için yükseltme tercihini yapılandırın. Daha fazla bilgi için bkz. Azure App Service için rutin (planlı) bakım.