Tutorial: Menjalankan pengujian beban untuk mengidentifikasi penyempitan performa di aplikasi web
Dalam tutorial ini, Anda mempelajari cara mengidentifikasi hambatan performa dalam aplikasi web dengan menggunakan Azure Load Testing. Anda mensimulasikan beban untuk aplikasi web Node.js sampel, lalu menggunakan dasbor uji beban untuk menganalisis metrik sisi klien dan sisi server.
Aplikasi sampel terdiri dari API web Node.js, yang berinteraksi dengan database NoSQL. Anda menyebarkan API web ke aplikasi web Azure App Service dan menggunakan Azure Cosmos DB sebagai database.
Dalam tutorial ini, Anda akan mempelajari cara:
- Sebarkan aplikasi sampel.
- Membuat dan menjalankan uji beban.
- Tambahkan komponen aplikasi Azure ke pengujian beban.
- Identifikasi hambatan performa dengan menggunakan dasbor uji beban.
Prasyarat
- Akun Azure dengan langganan aktif. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Azure CLI dipasang di komputer lokal Anda.
- Azure CLI versi 2.2.0 atau yang lebih baru. Jalankan
az --version
untuk menemukan versi yang terinstal pada komputer Anda. Jika Anda perlu menginstal atau meningkatkan Azure CLI, lihat Cara menginstal Azure CLI. - Visual Studio Code. Jika Anda tidak memilikinya, unduh dan instal.
- Git. Jika Anda tidak memilikinya, unduh dan instal.
Pemeriksaan Prasyarat
Sebelum memulai, validasi lingkungan Anda:
Masuk ke portal Azure dan periksa apakah langganan Anda aktif.
Periksa versi Azure CLI Anda di terminal atau jendela perintah dengan menjalankan
az --version
. Untuk versi terbaru, lihat catatan rilis terbaru.Jika Anda tidak memiliki versi terbaru, perbarui pemasangan Anda dengan mengikuti panduan pemasangan sistem operasi atau platform Anda.
Menyebarkan aplikasi sampel
Dalam tutorial ini, Anda menghasilkan beban terhadap aplikasi web sampel yang Anda sebarkan ke Azure App Service. Gunakan perintah Azure CLI, perintah Git, dan perintah PowerShell untuk menyebarkan aplikasi sampel di langganan Azure Anda.
Buka Windows PowerShell, masuk ke Azure, dan atur langganan:
az login az account set --subscription <your-Azure-Subscription-ID>
Kloning repositori sumber aplikasi sampel:
git clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.git
Aplikasi sampel adalah aplikasi Node.js yang terdiri dari komponen web Azure App Service dan database Azure Cosmos DB. Repositori menyertakan skrip PowerShell yang menyebarkan aplikasi sampel ke langganan Azure Anda. Ini juga memiliki skrip Apache JMeter yang akan Anda gunakan di langkah-langkah selanjutnya.
Buka direktori aplikasi Node.js dan sebarkan aplikasi sampel dengan menggunakan skrip PowerShell ini:
cd nodejs-appsvc-cosmosdb-bottleneck .\deploymentscript.ps1
Pada perintah, berikan:
- ID langganan Azure Anda.
- Nama unik untuk aplikasi web Anda.
- Lokasi. Secara default, lokasinya adalah
eastus
. Anda bisa mendapatkan kode wilayah dengan menjalankan perintah Get-AzLocation .
Penting
Untuk nama aplikasi web Anda, gunakan hanya huruf kecil dan angka. Jangan gunakan spasi atau karakter khusus.
Setelah penyebaran selesai, buka aplikasi sampel yang sedang berjalan dengan membuka
https://<yourappname>.azurewebsites.net
di jendela browser.
Setelah aplikasi sampel disebarkan dan dijalankan, Anda dapat membuat sumber daya pengujian beban Azure dan pengujian beban.
Membuat uji beban
Dalam tutorial ini, Anda membuat uji beban dengan Azure CLI dengan mengunggah skrip pengujian JMeter (jmx
file). Repositori aplikasi sampel sudah berisi file konfigurasi uji beban dan skrip pengujian JMeter.
Untuk membuat uji beban dengan menggunakan portal Azure, ikuti langkah-langkah di Mulai Cepat: buat uji beban dengan skrip JMeter.
Ikuti langkah-langkah ini untuk membuat sumber daya pengujian beban Azure dan uji beban dengan menggunakan Azure CLI:
Buka jendela terminal dan masukkan perintah berikut untuk masuk ke langganan Azure Anda.
az login
Buka direktori aplikasi sampel.
cd nodejs-appsvc-cosmosdb-bottleneck
Buat grup sumber daya untuk sumber daya pengujian beban Azure.
Secara opsional, Anda juga dapat menggunakan kembali grup sumber daya dari aplikasi sampel yang Anda sebarkan sebelumnya.
<load-testing-resource-group-name>
Ganti tempat penampung teks dengan nama grup sumber daya.resourceGroup="<load-testing-resource-group-name>" location="East US" az group create --name $resourceGroup --location $location
Buat sumber daya pengujian beban Azure dengan
az load create
perintah .<load-testing-resource-name>
Ganti tempat penampung teks dengan nama sumber daya pengujian beban.# This script requires the following Azure CLI extensions: # - load loadTestResource="<load-testing-resource-name>" az load create --name $loadTestResource --resource-group $resourceGroup --location $location
Buat pengujian beban untuk mensimulasikan beban terhadap aplikasi sampel Anda dengan
az load test create
perintah .<web-app-hostname>
Ganti tempat penampung teks dengan nama host App Service dari aplikasi sampel. Nilai ini adalah dari bentukmyapp.azurewebsites.net
. Jangan sertakanhttps://
bagian URL.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=$webappHostname
Perintah ini menggunakan
Sampleapp.yaml
file konfigurasi uji beban, yang mereferensikanSampleApp.jmx
skrip pengujian JMeter. Anda menggunakan parameter baris perintah untuk meneruskan nama host aplikasi sampel ke pengujian beban.
Anda sekarang memiliki sumber daya pengujian beban Azure dan pengujian beban untuk menghasilkan beban terhadap aplikasi web sampel di langganan Azure Anda.
Menambahkan komponen aplikasi Azure untuk memantau aplikasi
Azure Load Testing memungkinkan Anda memantau metrik sumber daya untuk komponen Azure aplikasi Anda. Dengan menganalisis metrik sisi server ini , Anda dapat mengidentifikasi masalah performa dan stabilitas dalam aplikasi Anda langsung dari dasbor Azure Load Testing.
Dalam tutorial ini, Anda menambahkan komponen Azure untuk aplikasi sampel yang Anda sebarkan di Azure, seperti layanan aplikasi, akun Cosmos DB, dan banyak lagi.
Untuk menambahkan komponen aplikasi Azure untuk aplikasi sampel ke pengujian beban Anda:
Di portal Azure, buka sumber daya pengujian beban Azure Anda.
Di panel kiri, pilih Pengujian untuk menampilkan daftar pengujian beban
Pilih kotak centang di samping uji beban Anda, lalu pilih Edit.
Buka tab Pemantauan , lalu pilih Tambahkan/Ubah.
Pilih kotak centang untuk aplikasi sampel yang Anda sebarkan sebelumnya, lalu pilih Terapkan.
Tip
Anda dapat menggunakan filter grup sumber daya untuk hanya menampilkan sumber daya Azure di grup sumber daya aplikasi sampel.
Pilih Terapkan untuk menyimpan perubahan ke konfigurasi uji beban.
Anda berhasil menambahkan komponen aplikasi Azure untuk aplikasi sampel ke pengujian beban Anda untuk mengaktifkan pemantauan metrik sisi server saat pengujian beban sedang berjalan.
Menjalankan pengujian beban
Anda sekarang dapat menjalankan pengujian beban untuk mensimulasikan beban terhadap aplikasi sampel yang Anda sebarkan di langganan Azure Anda. Dalam tutorial ini, Anda menjalankan uji beban dari dalam portal Azure. Secara bergantian, Anda dapat mengonfigurasi alur kerja CI/CD untuk menjalankan pengujian beban Anda.
Untuk menjalankan pengujian beban Anda di portal Azure:
Di portal Azure, buka sumber daya pengujian beban Azure Anda.
Di panel kiri, pilih Pengujian untuk menampilkan daftar pengujian beban
Pilih uji beban dari daftar untuk melihat detail pengujian dan daftar eksekusi pengujian.
Pilih Jalankan, lalu Jalankan lagi untuk memulai pengujian beban.
Secara opsional, Anda dapat memasukkan deskripsi uji coba.
Saat Anda menjalankan pengujian beban, Azure Load Testing menyebarkan skrip pengujian JMeter dan file tambahan apa pun ke instans mesin pengujian, lalu memulai pengujian beban.
Saat pengujian beban dimulai, Anda akan melihat dasbor uji beban.
Jika dasbor tidak ditampilkan, Anda dapat memilih Refresh pada lalu pilih uji coba dari daftar.
Dasbor uji beban menyajikan detail uji coba, seperti metrik sisi klien dan metrik aplikasi sisi server. Grafik pada refresh dasbor secara otomatis.
Anda dapat menerapkan beberapa filter atau mengagregasi hasil ke persentil yang berbeda untuk menyesuaikan bagan.
Tip
Anda dapat menghentikan pengujian beban kapan saja dari portal Azure dengan memilih Hentikan.
Tunggu hingga pengujian beban selesai sepenuhnya sebelum Anda melanjutkan ke bagian berikutnya.
Menggunakan metrik sisi server untuk mengidentifikasi hambatan performa
Di bagian ini, Anda menganalisis hasil uji beban untuk mengidentifikasi hambatan performa dalam aplikasi. Periksa metrik sisi klien dan sisi server untuk menentukan akar penyebab masalah.
Pertama, lihat metrik sisi klien. Anda melihat bahwa persentil ke-90 untuk metrik Waktu respons untuk
add
permintaan API danget
lebih tinggi dari untuklasttimestamp
API.Anda dapat melihat pola serupa untuk Kesalahan, di mana
lasttimestamp
API memiliki lebih sedikit kesalahan daripada API lainnya.Hasil
add
api danget
serupa, sedangkanlasttimestamp
API bereaksi berbeda. Penyebabnya mungkin terkait dengan database, karenaadd
API danget
melibatkan akses database.Untuk menyelidiki hambatan ini secara lebih rinci, gulir ke bawah ke bagian dasbor metrik sisi server.
Metrik sisi server menampilkan informasi terperinci tentang komponen aplikasi Azure Anda: Paket Azure App Service, aplikasi web Azure App Service, dan Azure Cosmos DB.
Dalam metrik untuk paket Azure App Service, Anda dapat melihat bahwa metrik Persentase CPU dan Persentase Memori berada dalam rentang yang dapat diterima.
Sekarang, lihat metrik sisi server Azure Cosmos DB.
Perhatikan bahwa metrik Konsumsi RU yang Dinormalisasi menunjukkan bahwa database berjalan dengan cepat pada pemanfaatan sumber daya 100%. Penggunaan sumber daya yang tinggi dapat menyebabkan kesalahan pembatasan database. Ini juga dapat meningkatkan waktu respons untuk
add
API web danget
.Anda juga dapat melihat bahwa metrik Throughput yang Disediakan untuk instans Azure Cosmos DB memiliki throughput maksimum 400 RU. Meningkatkan throughput database yang disediakan mungkin menyelesaikan masalah performa.
Meningkatkan throughput database
Di bagian ini, Anda mengalokasikan lebih banyak sumber daya ke database untuk mengatasi hambatan performa.
Untuk Azure Cosmos DB, tingkatkan pengaturan skala RU database:
Buka sumber daya Azure Cosmos DB yang Anda provisikan sebagai bagian dari penyebaran aplikasi sampel.
Pilih tab Data Explorer .
Pilih Skalakan & Pengaturan, dan perbarui nilai throughput menjadi 1200.
Pilih Simpan untuk mengonfirmasi perubahan.
Memvalidasi peningkatan performa
Sekarang setelah Anda meningkatkan throughput database, jalankan ulang pengujian beban dan verifikasi bahwa hasil performa ditingkatkan:
Pada dasbor uji coba, pilih Jalankan ulang, lalu pilih Jalankan ulang pada panel Jalankan ulang pengujian .
Anda dapat melihat entri uji coba baru dengan kolom status yang menelusuri status Provisi, Eksekusi, dan Selesai . Kapan saja, pilih uji coba untuk memantau perkembangan pengujian beban.
Setelah pengujian beban selesai, periksa hasil Waktu respons dan hasil Kesalahan metrik sisi klien.
Periksa metrik sisi server untuk Azure Cosmos DB dan pastikan performanya meningkat.
Nilai Konsumsi RU yang Dinormalisasi Azure Cosmos DB sekarang jauh di bawah 100%.
Sekarang setelah Anda memperbarui pengaturan skala database, Anda dapat melihat bahwa:
- Waktu respons untuk
add
API danget
ditingkatkan. - Konsumsi RU yang dinormalisasi tetap berada di bawah batas.
Akibatnya, performa keseluruhan aplikasi Anda meningkat.
Membersihkan sumber daya
Penting
Anda dapat menggunakan kembali sumber daya Azure Load Testing yang Anda buat untuk tutorial Pengujian Beban Azure lainnya dan artikel panduan.
Jika Anda tidak berencana untuk menggunakan salah satu sumber daya yang Anda buat, hapus sumber daya tersebut sehingga Anda tidak dikenakan biaya lebih lanjut. Jika Anda telah menyebarkan aplikasi sampel di grup sumber daya yang berbeda, Anda mungkin ingin mengulangi langkah-langkah berikut.
Untuk menghapus sumber daya dengan menggunakan portal Azure:
Pilih tombol menu di sudut kiri atas, lalu pilih Grup sumber daya.
Dari daftar, pilih grup sumber daya yang Anda buat.
Pilih Hapus grup sumber daya.
Masukkan nama grup sumber daya. Kemudian pilih Hapus.
Untuk menghapus sumber daya dengan menggunakan Azure CLI, masukkan perintah berikut:
az group delete --name <yourresourcegroup>
Ingat, menghapus grup sumber daya akan menghapus semua sumber daya di dalamnya.
Konten terkait
- Dapatkan detail selengkapnya tentang cara mendiagnosis pengujian yang gagal
- Memantau metrik sisi server untuk mengidentifikasi hambatan performa di aplikasi Anda
- Menentukan kriteria kegagalan pengujian beban untuk memvalidasi hasil pengujian terhadap persyaratan layanan Anda
- Pelajari selengkapnya tentang konsep utama untuk Azure Load Testing.