Elastic Algorithm Service (EAS) menyediakan pengujian stres untuk layanan model bahasa besar (LLM) dan layanan tujuan umum. Anda dapat membuat serta menjalankan pengujian stres hanya dengan beberapa klik untuk memahami lebih baik kinerja layanan EAS Anda. Topik ini menjelaskan cara membuat dan mengelola tugas pengujian stres.
Langkah 1: Pergi ke halaman Buat Tugas Pengujian Stres
Masuk ke Konsol PAI. Di bilah navigasi atas, pilih wilayah target. Di sisi kanan halaman, pilih ruang kerja yang diinginkan, lalu klik Enter EAS.
Di tab Stress Testing Task, klik Add Stress Testing Task.
Langkah 2: Buat tugas pengujian stres
Pengujian stres layanan LLM
Jika layanan EAS Anda merupakan layanan LLM, centang kotak LLM Service untuk menghasilkan laporan pengujian stres yang disesuaikan dengan skenario LLM.
Anda hanya dapat membuat tugas pengujian stres untuk layanan LLM melalui konsol. Operasi ini tidak didukung oleh client EASCMD.
Pengujian stres layanan LLM hanya mendukung dua operasi API OpenAI berikut: /v1/completions dan /v1/chat/completions. Oleh karena itu, fitur pengujian stres layanan LLM hanya dapat digunakan untuk layanan EAS yang dideploy menggunakan mesin inferensi yang kompatibel dengan operasi API OpenAI, seperti vLLM, SGLang, LMDeploy, dan BladeLLM.
Di halaman Add Stress Testing Task, konfigurasikan parameter berikut, lalu klik OK.
Pengujian stres layanan tujuan umum
Pengujian stres untuk layanan tujuan umum mendukung tiga mode berikut:
auto mode: Controller VPC eas-benchmark secara otomatis membuat worker agent untuk pengujian stres, menetapkan konkurensi yang sesuai, dan menggunakan algoritma auto-tuning untuk menentukan kapasitas maksimum layanan.
scan mode: Beban ditingkatkan secara dinamis berdasarkan parameter yang Anda tentukan, seperti QPS awal (minQPS), QPS maksimum (maxQPS), interval pertumbuhan QPS (adjustInterval), dan ukuran langkah pertumbuhan QPS (qpsGrowthDelta). Pengujian berhenti ketika layanan mencapai maxRT atau maxQPS yang ditentukan, atau ketika jumlah error melebihi ambang batas toleransi kesalahan (faultTolerate).
manual mode: Jumlah agent pengujian stres dan konkurensi setiap agent bersifat tetap. Anda dapat menyesuaikan jumlah agent dan konkurensinya secara dinamis selama pengujian stres.
Konsol hanya mendukung mode auto. Client EASCMD mendukung mode auto, scan, dan manual. Bagian berikut menjelaskan cara menggunakannya.
Gunakan konsol
Konsol pengujian stres membatasi timeout permintaan hingga 20 detik. Jika kode return 512 muncul dalam laporan pengujian stres, kemungkinan besar disebabkan oleh timeout permintaan. Konsol pengujian stres EAS tidak mendukung konfigurasi timeout kustom.
Di halaman Add Stress Testing Task, konfigurasikan parameter berikut, lalu klik OK.

Parameter | Deskripsi | |
Basic Information | Service | Pilih layanan yang ingin Anda uji stresnya. |
Stress Testing URL | URL pemanggilan layanan. | |
Stress Testing Configuration | Data Source | Konfigurasikan data pengujian stres menggunakan Single Data, Data Address, OSS File, atau Local Upload. Untuk informasi lebih lanjut tentang cara membangun data pengujian stres dan jenis file yang didukung, lihat Lampiran 1: Data pengujian stres. Catatan
|
Split Data in File by Line | Parameter ini tersedia jika Anda mengatur Data Source ke Data Address, OSS File, atau Local Upload. Jika Anda mengaktifkan sakelar ini, file pengujian stres yang diunggah akan dipisah per baris. Setiap baris digunakan sebagai satu data pengujian stres. Jika tidak, seluruh isi file digunakan sebagai satu data pengujian stres. | |
Maximum Stress Testing Duration (s) | Durasi pengujian stres dalam detik. Nilai default adalah 300 detik. | |
Maximum Stress Testing QPS | QPS maksimum, yaitu laju permintaan yang dikirim per detik. Nilai default adalah 10000. | |
Maximum Stress Testing RT (ms) | Waktu respons (RT) maksimum dalam milidetik. Jika ambang batas ini terlampaui, QPS akan disesuaikan secara otomatis hingga RT waktu nyata memenuhi ekspektasi. | |
HTTP Header | Konfigurasi header permintaan dalam pasangan kunci-nilai. Contohnya:
| |
Gunakan klien EASCMD
Jalankan perintah bench create untuk membuat tugas pengujian stres. Untuk informasi lebih lanjut tentang cara login ke client EASCMD, lihat Unduh dan autentikasi client. Setelah tugas dibuat, Anda dapat melihat data pemantauan waktu nyata menggunakan URL yang dikembalikan dalam output. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.
eascmdwin64.exe bench create [bench_desc_json]Parameter bench_desc_json menentukan file JSON yang berisi informasi tentang tugas pengujian stres. Kode berikut memberikan beberapa contoh.
Untuk informasi lebih lanjut tentang parameter JSON, lihat Lampiran 3: Parameter konfigurasi JSON untuk pengujian stres.
Berikut ini adalah contoh output sistem.
[RequestId]: DE240637-4976-59AF-A28C-BAA55C0A****
[OK] Tugas [benchmark-xgb-test-b514] sedang dibuat
[OK] [Agnet: 0/1]: Berhasil memulai benchmark master
[OK] [Agnet: 0/1]: Berhasil memulai benchmark master
[OK] [Agnet: 1/1]: Tugas benchmark sedang berjalan
[OK] Tugas benchmark sedang berjalan
[OK] Klik tautan http://127.0.0.1:18222/eas-benchmark/statsview untuk mengamati detail visualisasi secara real-time, Anda dapat mematikannya dengan CTRL+C.
Mematikan tidak akan mengganggu tugas pengujian benchmark, dan Anda dapat membukanya kembali dengan perintah visualize:
eascmd -c [config_file] bench visualize benchmark-xgb-test-b514Langkah 3: Lihat detail pengujian stres
Lihat data pemantauan real-time
Saat Status tugas pengujian stres adalah Running, klik nama tugas untuk melihat data pemantauan waktu nyata.
Lihat laporan pengujian stres
Saat Status tugas pengujian stres adalah Completed, klik nama tugas untuk melihat laporan pengujian stres.
Laporan pengujian stres mencakup Basic Information, Stress Testing Configuration, Test Results, dan Stress Testing Task Monitoring. Tabel berikut menjelaskan metrik pemantauan untuk tugas pengujian stres.
Metrik pemantauan yang hanya didukung untuk layanan LLM
TTFT (Time To First Token)
Latensi token pertama dalam respons. Metrik ini mengukur waktu dari saat permintaan dikirim hingga token pertama diterima dari layanan.

TPOT (Time per Output Token)
Latensi setiap token berikutnya dalam respons. Metrik ini mengukur interval waktu antara dua token berturut-turut yang dihasilkan oleh layanan.

TPS (Token Per Second)
Jumlah token yang ditransmisikan per detik.

Metrik pemantauan yang didukung untuk semua layanan
Requests per second distribution
Distribusi jumlah permintaan yang diterima layanan per detik.

Response time distribution
Distribusi jumlah respons yang dikembalikan layanan dalam rentang waktu yang dipilih.

Traffic distribution
Distribusi volume data permintaan yang dikirim dari klien ke layanan dan respons yang dikembalikan layanan ke klien dalam rentang waktu yang dipilih.

Response time range distribution
Proporsi waktu respons yang dikembalikan layanan dalam rentang berbeda, dalam milidetik.

Overall response time distribution
Latensi end-to-end permintaan pada kuantil berbeda, dalam milidetik.

Return status code distribution
Distribusi kode status yang dikembalikan layanan.

Langkah 4: Kelola tugas pengujian stres
Kelola tugas pengujian stres di konsol
Di tab Stress Testing Task, Anda dapat melihat daftar tugas pengujian stres yang telah dibuat dan melakukan operasi seperti Start, Clone, Copy Report, dan Delete.

Kelola tugas pengujian stres menggunakan client EASCMD
Lihat daftar tugas pengujian stres
Jalankan perintah
bench listuntuk melihat daftar tugas pengujian stres yang dibuat oleh pengguna saat ini. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench lsContoh berikut menunjukkan output sistem.
[RequestId]: 7F953F8E-8897-5785-808A-CA648302**** +-------------------------+--------------------------+-------------+----------------+---------+---------------------+ | TASKNAME | TASKID | REGION | AVAILABLEAGENT | STATUS | CREATETIME | +-------------------------+--------------------------+-------------+----------------+---------+---------------------+ | benchmark-***-test-**** | eas-b-ql470xog6qeh25**** | cn-shanghai | 0 | Stopped | 2022-06-17 17:58:01 | | benchmark-***-test-**** | eas-b-bdnzvwq0z0h3xq**** | cn-shanghai | 2 | Running | 2022-06-20 12:18:54 | +-------------------------+--------------------------+-------------+----------------+---------+---------------------+Lihat detail tugas pengujian stres
Jalankan perintah
bench descuntuk melihat detail tugas pengujian stres tertentu. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench desc [benchmark_task_name]Ganti [benchmark_task_name] dengan nama tugas pengujian stres.
Berikut ini adalah contoh output sistem.
+----------------+------------------------------------------------------------------------------+ | TaskName | benchmark-***-test-b514 | | TaskId | eas-b-bdnzvwq0z0h3xq**** | | ServiceName | xgb_test | | Region | cn-shanghai | | DesiredAgent | 2 | | AvailableAgent | 2 | | Status | Running | | Message | Benchmark task is running | | CreateTime | 2021-10-20 12:38:35 | | UpdateTime | 2021-10-20 12:38:45 | | Config | { | | | "base": { | | | "agentCount": 2, | | | "concurrency": 40, | | | "duration": 1200, | | | "requestCount": | | | 922337203685477****, | | | }, | | | ... | | | } | +----------------+------------------------------------------------------------------------------+Aktifkan visualisasi real-time untuk tugas pengujian stres
Jalankan perintah
bench visualizeuntuk mengaktifkan fitur visualisasi waktu nyata untuk tugas pengujian stres. Setelah perintah ini dijalankan, server web dimulai di mesin lokal pada 127.0.0.1 untuk menampilkan halaman pemantauan waktu nyata. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench visualize [benchmark_task_name]Ganti [benchmark_task_name] dengan nama tugas pengujian stres.
Contoh keluaran:
[OK] Click the link http://127.0.0.1:18734/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C. Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command: eascmd -c [config_file] bench visualize benchmark-xgb-test-b514Buka tautan
http://127.0.0.1:18734/eas-benchmark/statsviewdi browser untuk melihat data waktu nyata.Dapatkan laporan pengujian stres
Ketika status tugas pengujian stres berubah menjadi Stopped, tugas tersebut selesai. Laporan pengujian stres disimpan ke OSS. Anda dapat menjalankan perintah
bench reportuntuk mendapatkan laporan pengujian stres. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench report [benchmark_task_name]Ganti [benchmark_task_name] dengan nama tugas pengujian stres.
Berikut ini adalah contoh output sistem.
[OK] Benchmark task benchmark-demo-test-c7eb report url: http://eas-benchmark.oss-cn-chengdu.aliyuncs.com/summary/benchmark-demo-test-c7eb-10004.htmlBuka tautan yang mengikuti url di browser untuk melihat laporan pengujian stres. Gambar berikut menunjukkan contoh laporan.

Ubah secara dinamis jumlah instans klien dan konkurensi
Ketika mode pengujian stres adalah manual, Anda harus menggunakan perintah
bench updateuntuk mengubah secara dinamis jumlah instans klien dan konkurensi. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench update [benchmark_task_name] -Doptional.concurrency=<attr_value> -Doptional.agentCount=<attr_value>Ganti <attr_value> dengan nilai spesifik. Kode berikut menunjukkan contoh penggunaan.
eascmdwin64.exe bench update benchmark-demo-b99c -Doptional.concurrency=2 -Doptional.agentCount=1Berikut ini adalah contoh output sistem.
[RequestId]: 9920C672-4D41-5CC4-8EC0-C690F76EB2BA [OK] Running [TaskName: benchmark-demo-b99c, DesiredAgent:1, AvailableAgent: 1, Message: Benchmark task is Updating] [OK] Benchmark task benchmark-demo-b99c was updated successfullyHentikan tugas pengujian stres
Jalankan perintah
bench stopuntuk menghentikan tugas pengujian stres yang sedang berjalan. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench stop [benchmark_task_name]Ganti [benchmark_task_name] dengan nama tugas pengujian stres.
Berikut ini adalah contoh output sistem.
Apakah Anda yakin ingin menghentikan tugas benchmark [benchmark-***-test-b514] di [cn-shanghai]? [Y/n] [OK] Tugas [benchmark-***-test-b514] sedang dihentikan [OK] [Agnet: 0/1]: Tugas benchmark sedang Berjalan [OK] [Agnet: 0/1]: Tugas benchmark telah Dihentikan [OK] Tugas benchmark telah dihentikanJika fitur visualisasi waktu nyata sedang berjalan saat Anda menghentikan tugas, sistem akan mengeluarkan laporan pengujian stres ke terminal tempat perintah visualisasi dijalankan. Anda juga dapat menjalankan perintah
bench reportuntuk mendapatkan laporan HTML yang lebih detail dengan grafik.Mulai tugas pengujian stres
Jalankan perintah
bench startuntuk memulai kembali tugas pengujian stres yang dihentikan. Contoh berikut menunjukkan format perintah untuk sistem Windows 64-bit.eascmdwin64.exe bench start [benchmark_task_name]CatatanPerbedaan antara perintah ini dan perintah
bench createadalah bahwa perintah ini memulai ulang tugas pengujian stres berdasarkan konfigurasi terakhir yang diperbarui dari tugas tersebut.Ganti [benchmark_task_name] dengan nama tugas pengujian stres.
Contoh berikut menunjukkan output sistem.
Are you sure to start the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n] [OK] Task [benchmark-***-test-b514] is starting [OK] [Agnet: 0/1]: Succeed to start benchmark master [OK] [Agnet: 1/1]: Benchmark task is Running [OK] Benchmark task is Running [OK] Click the link http://127.0.0.1:18947/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C. Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command: eascmd -c [config_file] bench visualize benchmark-xgb-test-b514Hapus tugas pengujian stres
Setelah tugas pengujian stres selesai, controller VPC menyimpan catatan tugas tersebut berdasarkan status akhirnya. Tabel berikut menjelaskan aturan retensi.
Keadaan akhir
Periode retensi
Stopped
48 jam.
CreateFailed, UpdateFailed, Terminated, atau Error
10 menit.
Setelah periode retensi berakhir, sistem secara otomatis menghapus tugas pengujian stres.
Anda juga dapat menjalankan perintah
bench deleteuntuk menghapus tugas pengujian stres secara manual. Berikut ini menunjukkan format perintah.eascmdwin64.exe bench delete [benchmark_task_name]Ganti [benchmark_task_name] dengan nama tugas pengujian stres.
Berikut ini adalah contoh output sistem.
Are you sure to delete the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n] [OK] Benchmark task benchmark-***-test-b514 is Deleting [OK] Benchmark task was deleted successfully
Lampiran 1: Data pengujian stres
Format data pengujian stres
Format data permintaan layanan bergantung pada definisi model dan implementasi prosesor. Data dapat dalam salah satu format berikut:
Jika Anda menggunakan data tidak terstruktur, seperti data suara, citra, atau teks, Anda dapat langsung mengunggah file sebagai data permintaan untuk pengujian stres.
Jika Anda menggunakan data terstruktur, seperti data TFRequest, Anda harus menggunakan kit pengembangan perangkat lunak (SDK) EAS untuk membangun data permintaan dan kemudian mengunggah data biner yang dihasilkan sebagai file. Untuk informasi lebih lanjut, lihat Pemanasan layanan model.
Jenis file data pengujian stres
Jenis file yang didukung meliputi .txt, .jpg, .bin, dan .zip. Jenis spesifik tergantung pada persyaratan layanan.
Lampiran 2: Contoh konfigurasi pengujian stres
Ketika Anda menggunakan client EASCMD untuk membuat tugas pengujian stres untuk layanan tujuan umum, Anda dapat menggunakan mode auto, scan, atau manual.
Anda dapat menambahkan parameter mode ke bagian optional file konfigurasi untuk menentukan mode pengujian stres. Kode berikut menunjukkan contoh konfigurasi.
auto mode
Dalam mode auto, Anda hanya perlu menentukan nama layanan dan data pengujian stres dalam file konfigurasi. Anda dapat menggunakan nilai default untuk parameter lainnya. Kode berikut menunjukkan contoh konfigurasi.
{
"service": {
"serviceName": "demo"
},
"data": {
"path": "https://examplebucket.oss-cn-chengdu.aliyuncs.com/data/warmup.tf.bin"
},
"optional": {
"maxQPS": 1000,
"duration": 300
}
}scan mode
{
"service": {
"serviceName": "demo"
},
"data": {
"content": "aGVsbG8K"
},
"optional": {
"mode": "scan",
"maxQPS": 1000,
"minQPS": 500,
"qpsGrowthDelta": 100,
"adjustInterval": 30
}
}manual mode
{
"service": {
"serviceName": "demo"
},
"data": {
"content": "aGVsbG8K"
},
"optional": {
"mode": "manual",
"agentCount": 1,
"concurrency": 5
}
}Lampiran 3: Parameter konfigurasi JSON untuk pengujian stres
Item | Parameter | Wajib | Deskripsi |
service | serviceName | Ya | Nama layanan tempat Anda ingin melakukan pengujian stres. |
data | content | Tidak | Satu data permintaan pengujian stres sebagai string yang dienkripsi Base64. Untuk mengonfigurasi beberapa data permintaan, tentukan parameter path. Untuk informasi lebih lanjut tentang cara membangun data pengujian stres dan jenis file yang didukung, lihat Lampiran 1: Data pengujian stres. |
path | Tidak | Path sumber data uji. Anda dapat mengonfigurasi path HTTP atau path OSS. Anda dapat menentukan beberapa path yang dipisahkan koma (,). Anda juga dapat mengemas beberapa file pengujian stres ke dalam file .zip untuk konfigurasi batch. Catatan File yang menyimpan data pengujian stres harus dalam format aslinya dan tidak perlu dienkripsi Base64. | |
multiLine | Tidak | Menentukan apakah data uji dipisah per baris. Ini adalah parameter Boolean. Nilai default adalah false. Jika Anda mengatur parameter ini ke true, data yang diunduh diurai per baris. | |
http | headers | Tidak | Pengaturan header permintaan HTTP. Ini adalah parameter daftar. Contohnya: |
timeout | Tidak | Latensi permintaan HTTP dalam milidetik. Nilai default adalah 20000. | |
optional | mode | Tidak | Mode pengujian stres. Nilai valid:
|
duration | Tidak | Durasi pengujian stres dalam detik. Nilai default adalah 600. Nilai maksimum adalah 1200. | |
agentCount | Tidak | Jumlah instans klien dalam mode manual. Jumlah instans yang lebih besar menghasilkan tekanan yang lebih tinggi. Nilai default adalah 1. | |
concurrency | Tidak | Konkurensi setiap instans klien dalam mode manual. Konkurensi yang lebih tinggi menghasilkan tekanan yang lebih tinggi. Nilai default adalah 2. Ketika tekanan tidak mencukupi, pertama-tama tingkatkan konkurensi. Jika peningkatan konkurensi tidak meningkatkan tekanan, coba tingkatkan jumlah instans klien. | |
adjustInterval | Tidak | Interval penyesuaian dinamis untuk tekanan otomatis dalam mode scan, dalam detik. Nilai default adalah 60. | |
minQPS | Tidak | Nilai QPS awal untuk tekanan otomatis dalam mode scan. Nilai default adalah 100. | |
maxQPS | Tidak | QPS maksimum yang diizinkan dalam mode scan atau auto. | |
maxRT | Tidak | RT maksimum (TP99) dalam mode scan atau auto. Jika ambang batas ini terlampaui, QPS disesuaikan secara otomatis hingga RT waktu nyata memenuhi ekspektasi. | |
qpsGrowthDelta | Tidak | Nilai peningkatan QPS setiap kali dalam mode scan. Nilai default adalah 50. | |
faultTolerate | Tidak | Toleransi terhadap error permintaan (kode status non-200) dalam mode scan atau auto. Misalnya, nilai 0,01 menunjukkan bahwa proses penanganan error dipicu jika 1% permintaan mengalami error. Nilai default adalah 0,001, yang berarti toleransi terhadap error permintaan adalah satu dalam seribu. | |
faultAction | Tidak | Perilaku controller pengujian stres ketika tingkat error permintaan melebihi ambang batas yang ditetapkan oleh faultTolerate dalam mode scan atau auto. Nilai valid:
|
FAQ
T: Error 400 atau 404 dikembalikan untuk permintaan pengujian stres tunggal, tetapi permintaan curl tunggal berhasil
Gejala: Semua permintaan gagal selama pengujian stres pada layanan inferensi model besar di EAS. Pengujian menggunakan satu sampel data dan mengembalikan kode status HTTP 400 atau 404. Namun, permintaan curl manual untuk data yang sama berhasil dengan kode status 200.
Akar penyebab:
Error 404: Path URL permintaan pengujian stres salah. Misalnya, path berisi garis miring di akhir, seperti
/test/, tetapi layanan terdaftar dengan path/test. Hal ini menyebabkan ketidaksesuaian routing.Error 400: String JSON tidak diapit tanda kutip tunggal saat menghasilkan enkripsi Base64 untuk badan permintaan. Misalnya,
echo -n {"file_names": [...]} | base64. Hal ini dapat menyebabkan error parsing shell. Akibatnya, layanan menerima format JSON yang tidak valid dan tidak dapat mengurai permintaan.
Solusi:
Pastikan path URL pengujian stres persis sama dengan path layanan yang terdaftar. Hapus semua garis miring di akhir. Gunakan
/testalih-alih/test/.Sebelum menghasilkan enkripsi Base64, apit badan permintaan JSON lengkap dengan tanda kutip tunggal. Contohnya:
echo -n '{"file_names": ["xxx.pdf"]}' | base64
Referensi
Anda dapat membuat dan mengelola tugas pengujian stres dengan memanggil operasi API. Untuk informasi lebih lanjut tentang operasi API dan parameternya, lihat Tugas pengujian stres.
Setelah Anda memastikan bahwa kinerja layanan memenuhi persyaratan Anda, Anda dapat menggunakan layanan tersebut untuk inferensi model. Untuk informasi lebih lanjut, lihat Ikhtisar metode pemanggilan.
