CreateBenchmarkTask - 创建压测任务

更新时间: 2023-07-26 19:10:20

调用CreateBenchmarkTask,创建压测任务。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
eas:CreateBenchmarkTaskWrite
  • PAI
    acs:eas:{#regionId}:{#accountId}:benchmarktask/*

请求语法

POST /api/v2/benchmark-tasks

请求参数

名称类型必填描述示例值
bodystring

压测任务的配置参数。

{ "base": { "duration": 600 }, "service": { "serviceName": "test_service", "requestToken": "test_token" }, "data": { "path": "https://larec-benchmark-cd.oss-cn-chengdu.aliyuncs.com/youbei/sv_dbmtl/data/youbei.warmup.tf.bin", "dataType": "binary" }, "optional": { "maxRt": 100 } }

压测任务配置参数

eas-benchmark 整体配置分五部分,如下所示:

参数说明
base压测任务的基本配置。
service待压测服务的相关配置。
data压测请求数据的相关配置。
http服务请求HTTP相关配置。
optional压测任务可选高级配置。

表1. base描述表

参数说明
name【可选】压测任务的名称,如果不指定,会根据服务名自动生成。
duration【可选】压测任务执行的总时间,单位为秒,默认为1200。
qps【可选】压测任务的目标(预期)QPS, 默认为10000。
concurrency【可选】每个压测实例内创建的并发连接数, 初始值默认为40,会动态修改。
agentCount【可选】压测任务创建的实例个数,初始值默认为1,会动态修改。

表2. service描述表

当您需要通过访问网关的模式创建压测任务时,需要提交工单开通白名单权限。

参数说明
serviceUrl【可选】待压测服务的访问URL,如果待压测服务是EAS服务,无需配置。
serviceName【可选】待压测服务的服务名,如果待压测服务是EAS服务,必须配置;如果待压测服务是自定义服务,无需配置。
requestToken【可选】访问服务的鉴权token,如果serviceName被指定,无需配置。
endpointType【可选】服务支持的压测类型,支持default(网关)、direct(直连模式) 两种模式,默认为direct
#### 表3. data描述表
参数说明
------
content【可选】压测请求数据,字符串格式。
path【可选】测试数据源的HTTP路径,可以是单个文件,也支持.zip文件,对.zip文件下载后会自动解压。
dataType【可选】测试数据的类型,支持text和binary两种类型,默认为text类型。
multiLine【可选】测试数据是否是按行分割的,BOOL类型,如果设置为true,会将下载的数据逐行解析。
#### 表4、HTTP描述表
参数说明
------
method【可选】HTTP请求方法,默认为POST类型。
host【可选】请求主机HOST设置,默认为空。
headers【可选】HTTP请求HEADER设置,LIST类型,例如:["Authorization:aaa", "Content-Type:text"]
timeout【可选】HTTP请求延时,单位为毫秒,默认20000。
#### 表5. optional描述表
参数说明
------
mode【可选】压测模式,支持以下三种模式:
auto(自动加压模式):默认值。eas-benchmark控制器会自动创建用于压测的Agent Worker,并设置合适的并发,通过自动寻优的算法来寻找服务的承压上限。
scan(周期加压模式):根据您指定的起始QPS(minQPS)、QPS上限(maxQPS)、QPS增长时间间隔(adjustInterval)和QPS增长步长(qpsGrowthDelta)等参数,动态加压,当服务承载到达指定的maxRT、maxQPS或服务压测出现错误数量超出容忍程度(faultTolerate)时为止。
manual(手动加压模式):固定压测Agent数量及每个Agent的并发数,您可以在压测过程中动态调整Agent数量及Agent并发数。
adjustInterval【可选】自动加压的动态调整间隔,单位为秒,默认为60。例如设置为30, 则每隔30秒调整加压阈值。
minQPS【可选】在自动加压过程中QPS的最小值,默认为100。
maxQPS【可选】在自动加压过程中QPS的最大值,默认为10000。
maxRT【可选】期望的最大RT,超过该阈值会自动调节QPS,直到实时RT符合预期。
qpsGrowthDelta【可选】在自动加压过程中QPS每次增长的数值,默认为50 。
faultTolerate【可选】请求错误(非200状态码)率的容忍程度,默认为0.001。
faultAction【可选】在请求错误率超过faultTolerate设定的阈值时,压测的行为,可选值:stop (维持当前qps, 不再继续加压);revise(动态调整QPS,直到请求错误率符合预期)

返回参数

名称类型描述示例值
object

返回结果。

RequestIdstring

请求ID。

40325405-579C-4D82********
TaskNamestring

压测任务名字。

benchmark-larec-test-1076
Regionstring

压测任务所在的区域。

cn-shanghai
Messagestring

请求返回信息。

Benchmark task [foo] is Creating

示例

正常返回示例

JSON格式

{
  "RequestId": "40325405-579C-4D82********",
  "TaskName": "benchmark-larec-test-1076",
  "Region": "cn-shanghai",
  "Message": "Benchmark  task [foo] is Creating"
}

错误码

访问错误中心查看更多错误码。

阿里云首页 机器学习平台 PAI 相关技术圈