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








