Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, Azure Load Testing kullanarak bir web uygulamasında performans sorunlarını tanımlamayı öğreneceksiniz. Örnek Node.js web uygulaması için yükün benzetimini yapın ve ardından yük testi panosunu kullanarak istemci tarafı ve sunucu tarafı ölçümlerini analiz edin.
Örnek uygulama, NoSQL veritabanıyla etkileşim kuran Node.js web API'lerinden oluşur. Web API'sini Azure App Service web uygulamalarına dağıtır ve veritabanı olarak Azure Cosmos DB'yi kullanırsınız.
Bu eğitimde şunları öğreniyorsunuz:
- Örnek uygulamayı dağıtın.
- Yük testi oluşturma ve çalıştırma.
- Yük testine Azure uygulama bileşenleri ekleyin.
- Yük testi panosunu kullanarak performans sorunlarını belirleyin.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
- Yerel bilgisayarınızda yüklü Azure CLI.
- Azure CLI sürüm 2.2.0 veya üzeri. Bilgisayarınızda yüklü sürümü bulmak için komutunu çalıştırın
az --version. Azure CLI'yı yüklemeniz veya yükseltmeniz gerekiyorsa bkz . Azure CLI'yi yükleme. - Visual Studio Code. Sahip değilseniz indirip yükleyin.
- Git. Sahip değilseniz indirip yükleyin.
Önkoşul denetimi
Başlamadan önce ortamınızı doğrulayın:
Azure portalında oturum açın ve aboneliğinizin etkin olup olmadığını denetleyin.
komutunu çalıştırarak
az --versionbir terminalde veya komut penceresinde Azure CLI sürümünüzü denetleyin. En son sürüm için en son sürüm notları bölümüne bakın.En son sürüme sahip değilseniz, işletim sisteminiz veya platformunuz için yükleme kılavuzunu izleyerek yüklemenizi güncelleştirin.
Örnek uygulamayı dağıtma
Bu öğreticide, Azure App Service'e dağıttığınız örnek bir web uygulamasına yük oluşturacaksınız. Örnek uygulamayı Azure aboneliğinize dağıtmak için Azure CLI komutlarını, Git komutlarını ve PowerShell komutlarını kullanın.
Windows PowerShell'i açın, Azure'da oturum açın ve aboneliği ayarlayın:
az login az account set --subscription <your-Azure-Subscription-ID>Örnek uygulamanın kaynak deposunu kopyalayın:
git clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.gitÖrnek uygulama, Azure App Service web bileşeninden ve Azure Cosmos DB veritabanından oluşan Node.js bir uygulamadır. Depo, örnek uygulamayı Azure aboneliğinize dağıtan bir PowerShell betiği içerir. Ayrıca, sonraki adımlarda kullanacağınız bir Apache JMeter betiği de vardır.
Node.js uygulamasının dizinine gidin ve bu PowerShell betiğini kullanarak örnek uygulamayı dağıtın:
cd nodejs-appsvc-cosmosdb-bottleneck .\deploymentscript.ps1Tavsiye
PowerShell'i Linux/WSL veya macOS'a yükleyebilirsiniz.
Yükledikten sonra, önceki komutu olarak
pwsh ./deploymentscript.ps1çalıştırabilirsiniz.İstemde şunları sağlayın:
- Azure abonelik kimliğiniz.
- Web uygulamanız için benzersiz bir ad.
- Bir konum. Varsayılan olarak, konumu şeklindedir
eastus. Get-AzLocation komutunu çalıştırarak bölge kodlarını alabilirsiniz.
Önemli
Web uygulamanızın adı için yalnızca küçük harfler ve sayılar kullanın. Boşluk veya özel karakter kullanmayın.
Dağıtım tamamlandıktan sonra, tarayıcı penceresinde açarak
https://<yourappname>.azurewebsites.netçalışan örnek uygulamaya gidin.
Örnek uygulamayı dağıtıp çalıştırdığınıza göre artık bir Azure yük testi kaynağı ve yük testi oluşturabilirsiniz.
Yük testi oluşturma
Bu öğreticide, JMeter test betiğini (jmx dosyası) karşıya yükleyerek Azure CLI ile bir yük testi oluşturacaksınız. Örnek uygulama deposu zaten bir yük testi yapılandırma dosyası ve JMeter test betiği içeriyor.
Azure portalını kullanarak yük testi oluşturmak için Hızlı Başlangıç: JMeter betiğiyle yük testi oluşturma bölümünde yer alan adımları izleyin.
Azure CLI kullanarak bir Azure yük testi kaynağı ve yük testi oluşturmak için şu adımları izleyin:
Bir terminal penceresi açın ve Azure aboneliğinizde oturum açmak için aşağıdaki komutu girin.
az loginÖrnek uygulama dizinine gidin.
cd nodejs-appsvc-cosmosdb-bottleneckAzure yük testi kaynağı için bir kaynak grubu oluşturun.
İsteğe bağlı olarak, daha önce dağıtılan örnek uygulamanın kaynak grubunu da yeniden kullanabilirsiniz.
Metin yer tutucusunun
<load-testing-resource-group-name>yerine kaynak grubunun adını yazın.resourceGroup="<load-testing-resource-group-name>" location="East US" az group create --name $resourceGroup --location $locationkomutuyla
az load createbir Azure yük testi kaynağı oluşturun.Metin yer tutucusunun
<load-testing-resource-name>yerine yük testi kaynağının adını yazın.# This script requires the following Azure CLI extensions: # - load loadTestResource="<load-testing-resource-name>" az load create --name $loadTestResource --resource-group $resourceGroup --location $locationkomutuyla
az load test createörnek uygulamanıza yük benzetimi için bir yük testi oluşturun.Metin yer tutucusunu
<web-app-hostname>örnek uygulamanın App Service konak adıyla değiştirin. Bu değer biçimindedirmyapp.azurewebsites.net. URL'nin bölümünü eklemeyinhttps://.testId="sample-app-test" webappHostname="<web-app-hostname>" az load test create --test-id $testId --load-test-resource $loadTestResource --resource-group $resourceGroup --load-test-config-file SampleApp.yaml --env webapp=$webappHostnameBu komut, JMeter test betiğine
Sampleapp.yamlbaşvuran yük testi yapılandırma dosyasını kullanırSampleApp.jmx. Örnek uygulama konak adını yük testine geçirmek için bir komut satırı parametresi kullanırsınız.
Artık Azure aboneliğinizdeki örnek web uygulamasına yük oluşturmak için bir Azure yük testi kaynağınız ve yük testiniz var.
Uygulamayı izlemek için Azure uygulama bileşenleri ekleme
Azure Yük Testi, uygulamanızın Azure bileşenleri için kaynak ölçümlerini izlemenizi sağlar. Bu sunucu tarafı ölçümlerini analiz ederek uygulamanızdaki performans ve kararlılık sorunlarını doğrudan Azure Load Testing panosundan belirleyebilirsiniz.
Bu öğreticide, Uygulama Hizmeti, Cosmos DB hesabı ve daha fazlası gibi Azure'da dağıtmış olduğunuz örnek uygulamanın Azure bileşenlerini ekleyeceksiniz.
Örnek uygulamanın Azure uygulama bileşenlerini yük testinize eklemek için:
Sol bölmede Testler'i seçerek yük testlerinin listesini görüntüleyin
Yük testinizin yanındaki onay kutusunu ve ardından Düzenle'yi seçin.
İzleme sekmesine gidin ve Ekle/Değiştir'i seçin.
Daha önce dağıtılan örnek uygulamanın onay kutularını seçin ve ardından Uygula'yı seçin.
Tavsiye
Kaynak grubu filtresini kullanarak yalnızca örnek uygulama kaynak grubundaki Azure kaynaklarını görüntüleyebilirsiniz.
Değişiklikleri yük testi yapılandırmasına kaydetmek için Uygula'yı seçin.
Yük testi çalışırken sunucu tarafı ölçümlerini izlemeyi etkinleştirmek için örnek uygulamanın Azure uygulama bileşenlerini yük testinize başarıyla eklediniz.
Yük testini çalıştırma
Artık Yük testini çalıştırarak Azure aboneliğinizde dağıtılan örnek uygulamayla yük simülasyonu yapabilirsiniz. Bu öğreticide yük testini Azure portalından çalıştıracaksınız. Alternatif olarak, CI/CD iş akışınızı yük testinizi çalıştıracak şekilde yapılandırabilirsiniz.
Yük testinizi Azure portalında çalıştırmak için:
Sol bölmede Testler'i seçerek yük testlerinin listesini görüntüleyin
Test ayrıntılarını ve test çalıştırmalarının listesini görüntülemek için listeden yük testini seçin.
Çalıştır'ı seçin ve ardından yük testini başlatmak için yeniden Çalıştır'ı seçin.
İsteğe bağlı olarak, bir test çalıştırması açıklaması girebilirsiniz.
Bir yük testi çalıştırdığınızda Azure Load Testing, JMeter test betiğini ve ek dosyaları test altyapısı örneklerine dağıtır ve ardından yük testini başlatır.
Yük testi başladığında yük testi panosunu görmeniz gerekir.
Pano gösterilmiyorsa Yenile'yi ve ardından listeden test çalıştırmasını seçebilirsiniz.
Yük testi panosu, istemci tarafı ölçümleri ve sunucu tarafı uygulama ölçümleri gibi test çalıştırması ayrıntılarını sunar. Panodaki grafikler otomatik olarak yenilenir.
Grafikleri özelleştirmek için birden çok filtre uygulayabilir veya sonuçları farklı yüzdebirlik dilimlere toplayabilirsiniz.
Tavsiye
Azure portalından Durdur'u seçerek istediğiniz zaman yük testini durdurabilirsiniz.
Sonraki bölüme geçmeden önce yük testi tamamen bitene kadar bekleyin.
Performans sorunlarını belirlemek için sunucu tarafı ölçümlerini kullanma
Bu bölümde, uygulamadaki performans sorunlarını belirlemek için yük testinin sonuçlarını analiz edin. Sorunun kök nedenini belirlemek için hem istemci tarafı hem de sunucu tarafı ölçümlerini inceleyin.
İlk olarak, istemci tarafı ölçümlerine bakın. ve API istekleri için
addölçümü için 90. yüzdebirlik değeringetAPI'yelasttimestampgöre daha yüksek olduğunu fark edeceksiniz.
Api'nin diğer API'lerden daha az hataya sahip olduğu
lasttimestampHatalar için benzer bir desen görebilirsiniz.
ve
addAPI'leriningetsonuçları benzerken APIlasttimestampfarklı davranır. Hem hemaddde API'leri veritabanı erişimi içerdiğindenget, bunun nedeni veritabanıyla ilgili olabilir.Bu performans sorununu daha ayrıntılı bir şekilde araştırmak için aşağı kaydırarak Sunucu tarafı ölçümler panosu bölümüne gidin.
Sunucu tarafı ölçümleri Azure uygulama bileşenleriniz hakkında ayrıntılı bilgileri gösterir: Azure App Service planı, Azure App Service web uygulaması ve Azure Cosmos DB.
Azure App Service planının ölçümlerinde CPU Yüzdesi ve Bellek Yüzdesi ölçümlerinin kabul edilebilir bir aralık içinde olduğunu görebilirsiniz.
Şimdi Azure Cosmos DB sunucu tarafı ölçümlerine bakın.
Normalleştirilmiş RU Tüketimi ölçümünde veritabanının hızla 100% kaynak kullanımında çalıştığının gösterildiğine dikkat edin. Yüksek kaynak kullanımı veritabanı azaltma hatalarıyla karşılaşıyor olabilir. Ayrıca ve
addweb API'lerinin yanıt sürelerinigetartırabilir.Azure Cosmos DB örneği için Sağlanan Aktarım Hızı ölçümünün en fazla 400 RU aktarım hızına sahip olduğunu da görebilirsiniz. Veritabanının sağlanan aktarım hızını artırmak performans sorununu çözebilir.
Veritabanı aktarım hızını artırma
Bu bölümde, performans sorunlarını çözmek için veritabanına daha fazla kaynak ayıracaksınız.
Azure Cosmos DB için veritabanı RU ölçek ayarını artırın:
Örnek uygulama dağıtımının bir parçası olarak sağladığınız Azure Cosmos DB kaynağına gidin.
Veri Gezgini sekmesini seçin.
Ölçek ve Ayarlar'ı seçin ve aktarım hızı değerini 1200 olarak güncelleştirin.
Değişiklikleri onaylamak için kaydet'i seçin.
Performans iyileştirmelerini doğrulama
Veritabanı aktarım hızını artırdığınıza göre yük testini yeniden çalıştırın ve performans sonuçlarının iyileştiğini doğrulayın:
Test çalıştırması panosunda Yeniden Çalıştır'ı seçin ve ardından Testi yeniden çalıştır bölmesinde Yeniden Çalıştır'ı seçin.
Sağlama, Yürütme ve Bitti durumları arasında geçiş yapılan durum sütununa sahip yeni bir test çalıştırması girişi görebilirsiniz. İstediğiniz zaman, yük testinin nasıl ilerletişini izlemek için test çalıştırmasını seçin.
Yük testi tamamlandıktan sonra Yanıt süresi sonuçlarını ve istemci tarafı ölçümlerinin Hatalar sonuçlarını denetleyin.
Azure Cosmos DB için sunucu tarafı ölçümlerini denetleyin ve performansın iyileştiğinden emin olun.
Azure Cosmos DB Normalleştirilmiş RU Tüketimi değeri artık 100%altındadır.
Veritabanının ölçek ayarlarını güncelleştirdiğinize göre şunları görebilirsiniz:
- ve
addAPI'leriningetyanıt süresi geliştirildi. - Normalleştirilmiş RU tüketimi sınırın altında kalır.
Sonuç olarak, uygulamanızın genel performansı iyileştirildi.
Kaynakları temizle
Önemli
Diğer Azure Yük Testi öğreticileri ve nasıl yapılır makaleleri için oluşturduğunuz Azure Yük Testi kaynağını yeniden kullanabilirsiniz.
Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, daha fazla ücret ödememek için bunları silin. Örnek uygulamayı farklı bir kaynak grubuna dağıttıysanız aşağıdaki adımları tekrarlamak isteyebilirsiniz.
Azure portalını kullanarak kaynakları silmek için:
Sol üst köşedeki menü düğmesini ve ardından Kaynak grupları'nı seçin.
Listeden, oluşturduğunuz kaynak grubunu seçin.
Kaynak grubunu sil seçeneğini seçin.
Kaynak grup adını girin. Ardından Sil'i seçin.
Azure CLI kullanarak kaynakları silmek için aşağıdaki komutu girin:
az group delete --name <yourresourcegroup>
Kaynak grubunu sildiğinizde içindeki tüm kaynakların silineceği unutmayın.
İlgili içerik
- Başarısız testleri tanılama hakkında daha fazla bilgi edinin
- Uygulamanızdaki performans sorunlarını belirlemek için sunucu tarafı ölçümlerini izleme
- Test sonuçlarını hizmet gereksinimlerinize göre doğrulamak için yük testi başarısız ölçütlerini tanımlama
- Azure Yük Testi için temel kavramlar hakkında daha fazla bilgi edinin.