Perencanaan dasar untuk pengujian beban - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Perencanaan dasar untuk pengujian beban

Untuk menentukan alat dan pengaturan yang tepat untuk uji beban, jelaskan mengapa Anda menjalankan tes. Pertanyaan-pertanyaan berikut harus ditangani dengan jenis tes yang tepat:

  • Berapa banyak beban yang dapat ditahan aplikasi saya?

  • Dapatkah aplikasi saya menangani beban X?

  • Apakah aplikasi saya secara otomatis naik dan turun?

  • Apakah perilaku aplikasi saya menurun seiring waktu dengan jumlah beban X?

  • Apakah aplikasi saya berfungsi? (Ini bukan uji beban biasa, tetapi Anda dapat menggunakan alat pengujian beban untuk menentukan apakah aplikasi Anda berfungsi seperti yang diharapkan.)

Tentukan kompleksitas tes

Kompleksitas tes ditentukan oleh seberapa lengkap evaluasi Anda nantinya. Alat dasar, seperti Hey atau ab, dapat menjalankan permintaan terhadap URI aplikasi tunggal. Alat-alat ini adalah yang paling efisien, tetapi mereka hanya menguji satu aspek dari aplikasi Anda. Dalam beberapa kasus, ini bisa cukup. Misalnya, jika Anda ingin menguji penskalaan, cukup melakukan panggilan terhadap titik akhir untuk menimbulkan beban dalam dimensi yang ingin Anda uji. Misalnya, beban CPU dapat berupa muatan besar atau perhitungan intensif yang menciptakan beban CPU. Jika Anda memiliki sistem terdistribusi, Anda mungkin ingin memanggil titik akhir yang memulai proses yang kompleks dan terdistribusi.

Dalam kasus lain, Anda mungkin memerlukan tes untuk melakukan perilaku yang kompleks. Misalnya, Anda harus masuk sebelum memulai proses, atau Anda sedang menguji proses pesanan yang mencakup memilih item dan melakukan pembelian. Ini bisa dipahami sebagai skenario. Skenario pengujian membutuhkan alat pengujian beban yang lebih kompleks di mana Anda dapat membentuk beban kerja agar sesuai dengan situasi kehidupan nyata. Ini akan menghasilkan hasil yang dapat Anda gunakan untuk membuat pernyataan tentang kinerja yang akan dialami pengguna akhir.

Tes kompleks menginduksi lebih banyak beban pada sistem penghasil beban. Untuk menjalankan tes beban, Anda harus mempertimbangkan tidak hanya alat tetapi juga sistem yang menjalankan alat, CPU dan bandwidth jaringannya menjadi aspek yang paling penting. Sistem komputer uji beban yang dirancang dengan buruk dapat menyebabkan hasil yang salah. Misalnya, satu mesin tidak akan cukup untuk membuat beban untuk target yang berkinerja baik. Dalam hal ini, Anda harus mengatur uji beban terdistribusi. Di sisi lain, alat yang berkinerja baik dapat membuat lebih banyak beban dengan satu server. Ini akan dibahas secara lebih mendalam dalam diskusi pengaturan pengujian.

Pengukuran dan pengaturan

Representabilitas lingkungan pengujian harus dipertimbangkan. Jika Anda menjalankan situs belanja besar, dengan ribuan server, dapat menjadi sulit untuk menguji produksi tanpa mempengaruhi pengguna akhir atau untuk membuat lingkungan pengujian yang mereplikasi ukuran situs. Selain itu, menciptakan lalu lintas yang cukup untuk memberi tekanan pada sistem dengan skala ini juga membutuhkan pengaturan uji beban yang canggih. Untuk alasan ini, pengujian beban biasanya dijalankan pada pengaturan yang lebih kecil dan sebanding yang dapat Anda gunakan untuk menarik asumsi tentang lingkungan produksi. Pengujian yang menetapkan baseline atau persyaratan fungsional dapat dijalankan pada lingkungan produksi.

Merupakan praktik yang baik untuk mendokumentasikan lingkungan pengujian untuk pengujian berikutnya sehingga Anda memiliki spesifikasi yang terdefinisi dengan baik, dengan hasil yang diharapkan untuk ukuran lingkungan target mana.

Pertimbangkan semua elemen infrastruktur yang dipengaruhi oleh uji beban. Sementara tes sering melihat CPU dan memori host, ada efek samping lain yang relevan untuk dipertimbangkan.

Efek samping yang khas adalah bandwidth jaringan untuk komunikasi antara layanan Anda dapat mencapai batasnya. Untuk layanan yang terhubung melalui internet atau untuk sistem terdistribusi, komunikasi biasanya didasarkan pada jaringan. Menggunakan load test yang menimbulkan stress pada aplikasi juga akan menimbulkan stress pada infrastruktur jaringan yang mendasarinya.

Pemodelan beban dan tes bertahap

Untuk pengujian yang berbeda, Anda dapat memodelkan berapa banyak beban yang dihasilkan selama pengujian. Cara dasar adalah dengan membuat perkembangan bertahap yang secara bertahap akan meningkatkan beban dari waktu ke waktu. Ini akan menciptakan titik data yang berbeda untuk setiap langkah, yang memungkinkan Anda untuk menarik kesimpulan yang lebih rinci yang dijalankan oleh satu pengujian. Untuk menemukan batas yang relevan untuk aplikasi Anda, itu adalah praktik yang baik untuk memulai pengujian dengan beban yang di bawah penggunaan biasa di mana Anda akan mengharapkan kinerja terbaik. Ketika Anda secara bertahap meningkatkan beban, Anda akan melihat batas di mana kinerja aplikasi menurun. Hasil akan menunjukkan jika perilaku yang diharapkan masih valid dan aplikasi Anda berperilaku seperti yang diharapkan dalam situasi yang salah. Misalnya, saat menguji di atas batas, Anda dapat mengharapkan aplikasi Anda kehilangan beban.

Menggunakan alat yang kompleks, Anda dapat mengatur pola sebagai konfigurasi untuk pengujian Anda. Ini akan menentukan berapa banyak beban yang akan diproduksi untuk suatu periode dan bagaimana itu akan meningkat atau menurun.

Sebagian besar alat dasar adalah alat baris perintah, yang mengharuskan Anda untuk membuat skrip solusi sendiri. Ketika Anda menulis skrip Anda sendiri, pastikan bahwa Anda tidak sengaja menimpa metrik yang ingin Anda simpan. File keluaran harus memiliki sufiks baru untuk setiap iterasi, sehingga Anda tidak menimpa hasil iterasi sebelumnya.