EAS提供了針對LLM服務和通用情境服務的壓測方法,協助您輕鬆建立壓測任務並進行一鍵壓測,全面瞭解EAS服務的效能表現。本文為您介紹如何建立和管理壓測任務。
功能對比
EAS 提供兩種壓測類型:LLM 服務壓測和泛型服務壓測。請根據您的服務類型和壓測目標,選擇合適的壓測方案。
特性 | LLM服務壓測 | 泛型服務壓測 |
適用情境 | 專為大語言模型(LLM)最佳化,評估模型響應和產生速度。 | 適用於所有基於HTTP/HTTPS介面的服務。 |
建立方式 | 僅支援 PAI控制台 | PAI控制台 (僅支援 |
核心指標 | 除泛型服務壓測的指標,還包含LLM特有指標:TTFT, TPOT, TPS | QPS, RT等 |
前提條件
已部署可用的 EAS 服務
在目標地區和工作空間中,已通過 EAS 建立至少一個線上服務。
服務狀態為運行中,且可正常調用。
LLM 服務壓測特定要求
服務使用相容 OpenAI API 介面的推理引擎部署,例如 vLLM、SGLang、LMDeploy、BladeLLM。
服務對外暴露的介面為
/v1/completions或/v1/chat/completions。壓測資料必須包含
"stream": true欄位,以構造流式請求統計 TTFT、TPOT 等 Token 相關指標。
快速開始
本節對Qwen3-8BLLM服務(參見LLM大語言模型部署)分別按照LLM服務和通用情境進行壓測。
此處僅為快速上手,不建議對LLM服務進行通用情境壓測。
步驟一:建立壓測任務
登入PAI控制台,在頁面上方選擇目標地區。
在左側導覽列單擊模型在线服务(EAS),選擇目標工作空間後進入EAS。
切換到压测任务頁簽,單擊添加压测任务。
如下配置參數,其他保持預設(詳細參數配置請參見LLM 配置說明、通用情境配置說明):
LLM服務壓測
參數
說明
基本信息
所属服务
選擇需要進行壓測的服務,並選中LLM服务。
服务接口
選擇
Chat。压测地址
選擇服務介面後,系統會自動為您佈建服務調用地址。
模型ID
ModelScope 或 Hugging Face 的模型 ID。填寫
Qwen/Qwen3-8B。压测配置
数据类型
公共数据集
数据集
ShareGPT。
测试模式
選擇固定并发测试。
请求样本数
200。
通用情境服務壓測
說明壓測控制台限制了壓測請求的逾時時間為20秒。如果壓測報告中出現512返回碼,大機率是由於請求等待逾時所致。目前,EAS壓測控制台暫不支援自訂配置逾時時間。
參數
說明
基本信息
所属服务
選擇需要進行壓測的服務。
压测地址
服務調用地址,需補充完整的介面路徑,如
/api/predict/<服務名稱>/v1/chat/comletions。压测配置
数据来源
選擇单个数据。
单个数据
執行
echo -n '{"model": "Qwen3-8B", "messages": [{"role": "user", "content": "Hello!"}], "max_tokens": 1024}' | base64得到base64編碼:eyJtb2RlbCI6ICJRd2VuMy04QiIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9XSwgIm1heF90b2tlbnMiOiAxMDI0fQ==
步驟二:查看壓測詳情
查看即時監控資料。當壓測任務狀態為運行中時,單擊任務名稱,查看即時監控資料。

查看壓測報告。當壓測任務狀態為已完成時,單擊任務名稱查看壓測報告。
壓測報告包含壓測任務基本信息、压测配置、压测结果及压测任务监控等內容。其中壓測任務監控指標參見壓測任務監控指標說明。
步驟三:管理壓測任務
通過控制台管理壓測任務
您可以在压测任务頁簽中查看已建立的壓測工作清單,並支援启动、克隆、复制报告和删除。

通過EASCMD用戶端管理壓測任務
查看壓測工作清單
使用
bench list命令查看目前使用者建立的壓測工作清單。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench ls系統輸出樣本如下。
[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 | +-------------------------+--------------------------+-------------+----------------+---------+---------------------+查看壓測任務詳情
使用
bench desc命令查看指定壓測任務的詳細資料。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench desc [benchmark_task_name]其中[benchmark_task_name]需替換為壓測任務名稱。
系統輸出樣本如下。
+----------------+------------------------------------------------------------------------------+ | 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****, | | | }, | | | ... | | | } | +----------------+------------------------------------------------------------------------------+啟動壓測任務即時可視化
使用
bench visualize命令啟動壓測任務的即時可視化功能。該命令執行完成後會在本地127.0.0.1啟動一個由webserver提供的即時監控頁面的展示。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench visualize [benchmark_task_name]其中[benchmark_task_name]需替換為壓測任務名稱。
系統輸出樣本如下。
[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-b514使用瀏覽器開啟連結
http://127.0.0.1:18734/eas-benchmark/statsview,即可查看即時資料結果。擷取壓測報告
當壓測任務狀態為Stopped狀態時,表示壓測任務結束。壓測報告會儲存到OSS中,您可以使用
bench report命令擷取壓測任務報告。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench report [benchmark_task_name]其中[benchmark_task_name]需替換為壓測任務名稱。
系統輸出樣本如下。
[OK] Benchmark task benchmark-demo-test-c7eb report url: http://eas-benchmark.oss-cn-chengdu.aliyuncs.com/summary/benchmark-demo-test-c7eb-10004.html使用瀏覽器開啟url後的連結,即可查看壓測報告結果,具體如下圖所示。

動態修改用戶端副本數量和並發數
當壓測模式為manual時,需要使用
bench update命令動態修改用戶端副本數量和並發數。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench update [benchmark_task_name] -Doptional.concurrency=<attr_value> -Doptional.agentCount=<attr_value>其中<attr_value>為具體取值。使用樣本如下:
eascmdwin64.exe bench update benchmark-demo-b99c -Doptional.concurrency=2 -Doptional.agentCount=1系統輸出樣本如下。
[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 successfully停止壓測任務
使用
bench stop命令停止當前正在啟動並執行壓測任務。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench stop [benchmark_task_name]其中[benchmark_task_name]需替換為壓測任務名稱。
系統輸出樣本如下。
Are you sure to stop the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n] [OK] Task [benchmark-***-test-b514] is stopping [OK] [Agnet: 0/1]: Benchmark task is Running [OK] [Agnet: 0/1]: Benchmark task is Stopped [OK] Benchmark task is stopped如果停止任務時,正在運行即時可視化功能。系統會在執行可視化命令的終端輸出壓測報告,您也可以通過
bench report命令,擷取更詳細的html圖文報告。啟動壓測任務
使用
bench start命令啟動處於停止狀態的壓測任務。以Windows64 版本為例,命令格式如下所示。eascmdwin64.exe bench start [benchmark_task_name]說明該命令與
bench create命令的區別為,通過該命令重新啟動壓測任務後,會按照該任務最後一次更新的配置,重新啟動新一輪的壓測任務。其中[benchmark_task_name]需替換為壓測任務名稱。
系統輸出樣本如下。
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-b514刪除壓測任務
壓測任務運行結束後,控制器會根據壓測任務結束的狀態保留壓測任務的記錄,具體保留規則如下表所示。
結束狀態
保留時間
Stopped
48小時。
CreateFailed、UpdateFailed、Terminated或Error
10分鐘。
超過保留時間,系統會自動刪除壓測任務。
您也可以使用
bench delete命令,手動刪除壓測任務。命令格式如下所示。eascmdwin64.exe bench delete [benchmark_task_name]其中[benchmark_task_name]需替換為壓測任務名稱。
系統輸出樣本如下。
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
LLM 配置說明
基本資料
參數 | 說明 |
所属服务 | 選擇需要進行壓測的服務名稱,並選中LLM服务。 |
服务接口 | 僅支援如下OpenAI的兩個介面:
|
压测地址 | 選擇服務介面後,系統會自動為您佈建服務調用地址。 |
模型ID | 填寫 ModelScope 或 Hugging Face 的模型 ID(必填)。用於載入對應的分詞器(tokenizer),從而準確計算壓測過程的token數量。 |
模型名称 | 用於構造請求中的model參數(選填)。優先順序高於模型ID,為空白時將使用模型ID作為請求參數。 |
選擇資料類型
数据类型 | 說明 |
公共数据集 | 使用公開的ShareGPT資料集進行壓力測試。
|
自定义数据集 | 根據具體使用情境,配置自訂資料集: 重要 LLM壓測的請求資料必須包含
|
模拟数据 |
|
選擇測試模式
支援以下3種測試模式:
固定并发测试:設定固定的並發數,適用於測試系統在特定並發下的效能表現。
固定请求速率测试:設定固定的請求速率,適用於測試系統在特定請求速率下的效能表現。
极限吞吐测试:一次性發送所有請求,找到推理服務能處理的最大請求速率(QPS)。適用於測試系統的極限能力。
固定并发测试和固定请求速率测试模式下,支援開啟持续压测。
開啟持续压测,任務會持續運行至壓測時間長度結束,不受请求样本数限制。
關閉持续压测,任務在完成設定的请求样本数或到達压测时长上限 (秒)後停止。
不同測試模式的參數配置如下:
測試模式 | 參數配置 |
固定并发测试 |
|
固定请求速率测试 | 設定固定的請求速率,適用於測試系統在特定請求速率下的效能表現。
|
极限吞吐测试 |
|
更多配置
參數 | 描述 |
HTTP Header | 格式為索引值對,例如:
|
突发性 |
|
随机种子 | 預設值:0。資料類型:整數。取值範圍:0-4294967295(即2**32-1)。 |
忽略EOS | 開啟忽略EOS表示,模型在產生文本時會忽略終止標記(End-of-Sequence, EOS),強制產生直到達到預設的最大產生長度。 |
通用情境配置說明
控制台參數
參數 | 描述 | |
基本信息 | 所属服务 | 選擇需要進行壓測的服務名稱。 |
压测地址 | 表示服務調用地址。 | |
压测配置 | 数据来源 | 支援按照单个数据、数据地址、OSS文件和本地上传方式配置壓測資料。
|
文件内的数据按行分割 | 當数据来源選擇数据地址、OSS文件或本地上传時,支援配置該參數。 開啟開關,表示上傳的壓測檔案將按行做分隔處理,以每行內容作為壓測資料進行壓測。否則以整個檔案內容作為壓測資料進行壓測。 | |
压测时长上限 (秒) | 表示壓測期間,單位為秒。預設為300秒。 | |
压测QPS上限 | 允許到達的QPS(即每秒發送請求的速率)上限值,預設為10000。 | |
压测RT上限 (ms) | 允許達到的回應時間(RT)上限值,單位為毫秒。超過該閾值會自動調節QPS,直到即時RT符合預期。 | |
HTTP Header | 要求標頭配置,格式為索引值對。例如:
| |
通過EASCMD用戶端建立
通過bench create命令建立壓測任務(如何登入EASCMD用戶端,請參見下載並認證用戶端。)。成功後,您可以通過返回的URL,查看即時監控資料。以Windows 64版本為例,命令格式如下所示。
eascmdwin64.exe bench create [bench_desc_json]其中bench_desc_json表示壓測任務相關資訊的JSON檔案。樣本如下(詳見壓測JSON配置參數說明):
系統輸出樣本如下。
[RequestId]: DE240637-4976-59AF-A28C-BAA55C0A****
[OK] Task [benchmark-xgb-test-b514] is creating
[OK] [Agnet: 0/1]: Succeed to start benchmark master
[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:18222/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-b514壓測模式
通用情境服務壓測支援以下3種模式:
auto模式:自動加壓模式。eas-benchmark控制器會自動建立用於壓測的Agent Worker,並設定合適的並發,通過自動尋優的演算法來尋找服務的承壓上限。
scan模式:周期加壓模式。根據您指定的起始QPS(minQPS),QPS上限(maxQPS),QPS增長時間間隔(adjustInterval),QPS增長步長(qpsGrowthDelta)等參數,動態加壓,當服務承載到達指定的maxRT、maxQPS或服務壓測出現錯誤數量超出容忍程度(faultTolerate)時為止。
manual模式:手動加壓模式。固定壓測Agent數量及每個Agent的並發數,您可以在壓測過程中動態調整Agent數量及Agent並發數。
控制台僅支援auto模式,EASCMD用戶端支援auto、scan、manual三種壓測模式。
您可以在JSON設定檔optional部分,添加mode參數,指定壓測模式。配置樣本如下。
auto模式
auto模式中,您只需在設定檔中指定服務名字和壓測資料即可,其它參數均可使用預設值。具體配置樣本,如下所示。
{
"service": {
"serviceName": "demo"
},
"data": {
"path": "https://examplebucket.oss-cn-chengdu.aliyuncs.com/data/warmup.tf.bin"
},
"optional": {
"maxQPS": 1000,
"duration": 300
}
}scan模式
{
"service": {
"serviceName": "demo"
},
"data": {
"content": "aGVsbG8K"
},
"optional": {
"mode": "scan",
"maxQPS": 1000,
"minQPS": 500,
"qpsGrowthDelta": 100,
"adjustInterval": 30
}
}manual模式
{
"service": {
"serviceName": "demo"
},
"data": {
"content": "aGVsbG8K"
},
"optional": {
"mode": "manual",
"agentCount": 1,
"concurrency": 5
}
}JSON參數說明
表項 | 參數 | 是否必選 | 描述 |
service | serviceName | 是 | 待壓測服務的服務名稱。 |
data | content | 否 | 單條壓測請求資料,Base64編碼的字串。 多條請求資料,可通過path參數進行指定。 |
path | 否 | 測試資料來源的路徑,支援配置HTTP路徑或OSS路徑。可同時指定多條路徑,通過半形逗號(,)分隔。同時支援通過.zip的形式,對多個壓測檔案進行批量打包配置。 說明 儲存壓測資料的檔案按原始格式,不需要進行Base64編碼。 | |
multiLine | 否 | 測試資料是否按行分割,Bool類型,預設為false。如果設定為true,會將下載的資料逐行解析。 | |
http | headers | 否 | HTTP請求Header設定,list類型。例如: |
timeout | 否 | http請求延時(單位為毫秒),預設為20000。 | |
optional | mode | 否 | 壓測模式,支援以下三種模式(詳見壓測模式):
|
duration | 否 | 壓測時間長度(單位秒),預設為600,最大不超過1200。 | |
agentCount | 否 | manual模式下的用戶端副本數量,副本數越多壓力越大,預設為1。 | |
concurrency | 否 | manual模式下的每個用戶端執行個體的並發數,並發越高壓力越大,預設為2。當壓力不夠時先增加並發,如果增加並發無法提升壓力時再嘗試增加用戶端副本數。 | |
adjustInterval | 否 | scan模式下自動加壓的動態調整間隔(單位為秒),預設為60。 | |
minQPS | 否 | scan模式下自動加壓的起始QPS值,預設為100。 | |
maxQPS | 否 | scan或auto模式下允許到達的QPS上限值。 | |
maxRT | 否 | scan或auto模式下的RT(TP99)上限值,超過該閾值會自動調節QPS,直到即時RT符合預期。 | |
qpsGrowthDelta | 否 | scan模式下的QPS每次增長的數值,預設為50。 | |
faultTolerate | 否 | scan或auto模式下對請求錯誤(非200狀態代碼)的容忍程度。比如0.01,表示有1%的請求出現錯誤則觸發錯誤處理流程。預設值為0.001,即對錯誤請求的容忍程度為千分之一。 | |
faultAction | 否 | scan或auto模式下在請求錯誤率超過faultTolerate設定的閾值時,壓測控制器的行為,支援以下取值:
|
壓測任務監控說明
LLM服務特有指標
TTFT(Time To First Token) 請求首包延時。表示從發送請求到接收到服務產生的第一個Token的時間。
| TPOT(Time per Output Token) 請求的每包延時。表示服務產生的相鄰兩個Token的時間間隔。
|
TPS(Token Per Second) 表示每秒傳輸的Token數量。
|
通用指標
每秒請求數分布 表示服務每秒接收到的請求數量的分布情況。
| 回應時間分布 表示服務在選定時間範圍內返回的響應數量的分布情況。
|
傳輸串流量分布 表示在選定時間範圍內,用戶端發送到服務的請求資料量和服務返回給用戶端的響應資料量分布情況。
| 回應時間區間分布 表示服務返回的回應時間的區間佔比,單位為毫秒。
|
回應時間整體分布 表示不同分位元下,請求的端到端延時,單位為毫秒。
| 返回狀態代碼分布 表示服務返回狀態代碼的分布情況。
|
常見問題
Q:單條壓測時返回 400 或 404 錯誤,但單次 curl 請求正常
問題現象:在使用單個資料對 EAS 部署的大模型推理服務進行一鍵壓測時,所有請求均失敗,返回 HTTP 狀態代碼 400 或 404;而通過手動 curl 發送相同請求卻能成功返回 200。
根本原因:
404 :壓測地址不對。比如末尾包含多餘的斜杠(如
/test/),而服務實際註冊的路徑為/test,導致路由不匹配。400 :請求體格式錯誤。一個常見錯誤是在產生請求體的 base64 編碼時,未將 JSON 字串用單引號包裹(如
echo -n {"file_names": [...]} | base64),導致 shell 解析錯誤,實際傳入的 JSON 格式無效,服務無法解析。
解決方案:
確保壓測 URL 路徑與服務註冊路徑完全一致,移除末尾多餘的斜杠(應使用
/test而非/test/)。在產生 base64 編碼前,將完整的 JSON 請求體用單引號包裹,例如:
echo -n '{"file_names": ["xxx.pdf"]}' | base64








