云服务器内容精选

  • benchmark方法介绍 性能benchmark包括两部分。 静态性能测试:评估在固定输入、固定输出和固定并发下,模型的吞吐与首token延迟。该方式实现简单,能比较清楚的看出模型的性能和输入输出长度、以及并发的关系。 动态性能测试:评估在请求并发在一定范围内波动,且输入输出长度也在一定范围内变化时,模型的延迟和吞吐。该场景能模拟实际业务下动态的发送不同长度请求,能评估推理框架在实际业务中能支持的并发数。 性能benchmark验证使用到的脚本存放在代码包AscendCloud-LLM-xxx.zip的llm_tools/llm_evaluation目录下。 代码目录如下: benchmark_tools |--- modal_benchmark |--- modal_benchmark_parallel.py # modal 评测静态性能脚本 |--- utils.py ├── benchmark_parallel.py # 评测静态性能脚本 ├── benchmark_serving.py # 评测动态性能脚本 ├── generate_dataset.py # 生成自定义数据集的脚本 ├── benchmark_utils.py # 工具函数集 ├── benchmark.py # 执行静态、动态性能评测脚本 ├── requirements.txt # 第三方依赖
  • 动态benchmark 本章节介绍如何进行动态benchmark验证。 获取数据集。动态benchmark需要使用数据集进行测试,可以使用公开数据集,例如Alpaca、ShareGPT。也可以根据业务实际情况,使用generate_datasets.py脚本生成和业务数据分布接近的数据集。 方法一:使用公开数据集 ShareGPT下载地址: https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json Alpaca下载地址: https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json 方法二:使用generate_dataset.py脚本生成数据集方法: 客户通过业务数据,在generate_dataset.py脚本,指定输入输出长度的均值和标准差,生成一定数量的正态分布的数据。具体操作命令如下,可以根据参数说明修改参数。 cd benchmark_tools python generate_dataset.py --dataset custom_datasets.json --tokenizer /path/to/tokenizer \ --min-input 100 --max-input 3600 --avg-input 1800 --std-input 500 \ --min-output 40 --max-output 256 --avg-output 160 --std-output 30 --num-requests 1000 generate_dataset.py脚本执行参数说明如下: --dataset:数据集保存路径,如custom_datasets.json。 --tokenizer:tokenizer路径,可以是HuggingFace的权重路径。backend取值是openai时,tokenizer路径需要和推理服务启动时--model路径保持一致,比如--model /data/nfs/model/llama_7b, --tokenizer也需要为/data/nfs/model/llama_7b,两者要完全一致。 --min-input:输入tokens最小长度,可以根据实际需求设置。 --max-input:输入tokens最大长度,可以根据实际需求设置。 --avg-input:输入tokens长度平均值,可以根据实际需求设置。 --std-input:输入tokens长度方差,可以根据实际需求设置。 --min-output:最小输出tokens长度,可以根据实际需求设置。 --max-output:最大输出tokens长度,可以根据实际需求设置。 --avg-output:输出tokens长度平均值,可以根据实际需求设置。 --std-output:输出tokens长度标准差,可以根据实际需求设置。 --num-requests:输出数据集的数量,可以根据实际需求设置。 进入benchmark_tools目录下,切换一个conda环境。 cd benchmark_tools conda activate python-3.9.10 执行脚本benchmark_serving.py测试动态benchmark。具体操作命令如下,可以根据参数说明修改参数。 python benchmark_serving.py --backend vllm --host ${docker_ip} --port 8080 --dataset custom_datasets.json --dataset-type custom \ --tokenizer /path/to/tokenizer --request-rate 0.01 1 2 4 8 10 20 --num-prompts 10 1000 1000 1000 1000 1000 1000 \ --max-tokens 4096 --max-prompt-tokens 3768 --benchmark-csv benchmark_serving.csv --backend:服务类型,如tgi,vllm,mindspore、openai。 --host ${docker_ip}:服务部署的IP地址,${docker_ip}替换为宿主机实际的IP地址。 --port:推理服务端口。 --dataset:数据集路径。 --dataset-type:支持三种 "alpaca","sharegpt","custom"。custom为自定义数据集。 --tokenizer:tokenizer路径,可以是HuggingFace的权重路径,backend取值是openai时,tokenizer路径需要和推理服务启动时--model路径保持一致,比如--model /data/nfs/model/llama_7b, --tokenizer也需要为/data/nfs/model/llama_7b,两者要完全一致。 --request-rate:请求频率,支持多个,如 0.1 1 2。实际测试时,会根据request-rate为均值的指数分布来发送请求以模拟真实业务场景。 --num-prompts:某个频率下请求数,支持多个,如 10 100 100,数量需和--request-rate的数量对应。 --max-tokens:输入+输出限制的最大长度,模型启动参数--max-input-length值需要大于该值。 --max-prompt-tokens:输入限制的最大长度,推理时最大输入tokens数量,模型启动参数--max-total-tokens值需要大于该值,tokenizer建议带tokenizer.json的FastTokenizer。 --benchmark-csv:结果保存路径,如benchmark_serving.csv。 --served-model-name: 选择性添加, 选择性添加,在接口中使用的模型名;如果没有配置,则默认为tokenizer。 --num-scheduler-steps: 需和服务启动时配置的num-scheduler-steps一致。默认为1。 脚本运行完后,测试结果保存在benchmark_serving.csv中,示例如下图所示。 图2 动态benchmark测试结果(示意图)
  • 静态benchmark验证 本章节介绍如何进行静态benchmark验证。 已经上传benchmark验证脚本到推理容器中。如果在步骤四 制作推理镜像步骤中已经上传过AscendCloud-LLM-x.x.x.zip并解压,无需重复执行。 进入benchmark_tools目录下,运行静态benchmark验证。 cd benchmark_tools 语言模型脚本相对路径是tools/llm_evaluation/benchmark_tools/benchmark_parallel.py,具体操作命令如下,可以根据参数说明修改参数。 python benchmark_parallel.py --backend openai --host ${docker_ip} --port ${port} --tokenizer /path/to/tokenizer --epochs 5 --num-scheduler-steps 8 \ --parallel-num 1 4 8 16 32 --prompt-tokens 1024 2048 --output-tokens 128 256 --benchmark-csv benchmark_parallel.csv 参数说明 --backend:服务类型,支持tgi、vllm、mindspore、openai等后端。本文档使用的推理接口是openai。 --host:服务部署的IP,${docker_ip}替换为宿主机实 际的IP地址。 --port:推理服务端口。 --tokenizer:tokenizer路径,HuggingFace的权重路径。 --epochs:测试轮数,默认取值为5。 --parallel-num:每轮并发数,支持多个,如 1 4 8 16 32。 --prompt-tokens:输入长度,支持多个,如 128 128 2048 2048,数量需和--output-tokens的数量对应。 --output-tokens:输出长度,支持多个,如 128 2048 128 2048,数量需和--prompt-tokens的数量对应。 --benchmark-csv:结果保存文件,如benchmark_parallel.csv。 --num-scheduler-steps: 需和服务启动时配置的num-scheduler-steps一致。默认为1。 --served-model-name: 选择性添加,在接口中使用的模型名;如果没有配置,则默认为tokenizer。 --enable-prefix-caching:服务端是否启用enable-prefix-caching特性,默认为false。 脚本运行完成后,测试结果保存在benchmark_parallel.csv中,示例如下图所示。 图1 静态benchmark测试结果(示意图)
  • 单条请求性能测试 针对openai的/v1/completions以及/v1/chat/completions两个非流式接口,请求体中可以添加可选参数"return_latency",默认为false,若指定该参数为true,则会在相应请求的返回体中返回字段"latency",返回内容如下: prefill_latency(首token时延):请求从到达服务开始到生成首token的耗时 model_prefill_latency(模型计算首token时延):服务从开始计算首token到生成首token的耗时 avg_decode_latency(平均增量token时延):服务计算增量token的平均耗时 time_in_queue(请求排队时间):请求从到达服务开始到开始被调度的耗时 request_latency(请求总时延):请求从到达服务开始到结束的耗时 以上指标单位均是ms,保留2位小数。
  • SDK列表 在开始使用之前,请确保您安装的是最新版本的SDK。使用过时的版本可能会导致兼容性问题或无法使用最新功能。您可以在 SDK中心 查询版本信息。 表1提供了性能测试服务支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导
  • 操作步骤 首次创建测试资源,需父账号授权,自动创建委托使性能测试服务可以操作用户CCE。 需要使用性能测试服务的用户,需要CodeArts PerfTest Administrator或CodeArts PerfTest Developer权限(仅能查看自己创建的工程)。 需要管理私有资源组的用户,需要CodeArts PerfTest Administrator或CodeArts PerfTest Developer+CodeArts PerfTest Resource Administrator权限。 需要使用私有资源组的用户,需要CodeArts PerfTest Administrator或CodeArts PerfTest Developer+CodeArts PerfTest Resource Developer权限。 使用性能测试服务依赖的权限及具体使用场景,详见使用性能测试服务需要哪些权限。 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。 (可选)首次使用时,请根据提示信息,授权性能测试服务创建私有资源组。 进入创建资源组页面后,如果是首次使用没有云容器引擎服务CCE集群,需要先创建集群然后再创建资源组。如果已有可用的云容器引擎服务CCE集群,直接创建资源组。 创建集群。 单击页面上方的“创建集群”,进入购买CCE集群页面。创建集群操作请参考购买CCE集群,设置集群参数。 推荐使用独立CCE集群用作压测,避免与测试或生产等环境CCE集群混用产生配置等冲突。 插件选择时,作为测试执行机仅保留默认安装即可,如节点本地 域名 解析加速、云原生监控插件等非必要插件请去除勾选,避免安装的插件占用执行机资源。 集群管理规模选择与执行节点个数相关,请根据需要压测的并发用户数,创建对应规格的节点。例如,需要20个执行节点,那么创建集群时集群规模选择50节点即可满足业务需求。 CCE集群的网络模型建议选择“容器隧道网络”,容器网段和服务网段需要与被测对象保持一致。 CentOS在高负载网络下容易出现IPVS、Conntrack相关稳定性问题,选择IPVS时不推荐您使用CentOS作为集群节点的操作系统。选择IPVS+CentOS时,网络连接复用可能存在超时。 单击“下一步:插件选择”,选择创建集群时需要安装的插件。 单击“下一步:插件配置”,默认选择即可,不需要更改。 单击“下一步:确认配置”,确认集群配置信息无误后,勾选已阅读使用说明,单击“提交”等待集群创建,集群创建预计需要6-10分钟。 集群创建成功后,返回集群管理页面,单击“创建节点”,进入创建节点页面。创建节点操作请参考创建节点,设置节点参数。 节点规格至少为vCPU为4核,内存8GB。 操作系统需选择欧拉EulerOS。 创建的节点数量至少需要2台(1台调试节点、1台执行节点),具体数量由压测对象要求规格决定。例如,压测10万并发用户数,vCPU为4核,内存8GB的资源需要21个执行节点(1个调试节点,20个执行节点)。 当CCE集群节点与被测应用不在同一VPC网络时,建议CCE集群节点绑定弹性IP。可使用已有的弹性IP,如果没有弹性IP也可以选择自动创建。自动创建弹性IP时,计费方式推荐按流量计费,带宽设置尽可能选择较大值,否则可能影响压测效果。系统根据您的配置创建弹性IP,并自动为每个节点进行分配。当创建的弹性IP数量小于节点个数时,会将弹性IP随机绑定到节点上。 “高级配置(可选)”中的“K8s节点名称”选择“与节点私有IP保持一致”,默认即为此选项。选择“与云服务器名称保持一致”将导致节点无法纳管。 单击“下一步:规格确认”,确认节点配置信息无误后,勾选已阅读使用说明,单击“提交”等待节点创建。节点创建成功后,返回性能测试服务控制台。 创建资源组。 在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。 参照表1设置基本信息。 表1 创建私有资源组 参数 参数说明 资源组名称 新建私有资源组的名称,可自定义。 节点集群 在下拉框选择已创建的CCE集群。 高级配置 可选项,配置项详见高级配置。 说明: 该功能为白名单特性,需要联系后台管理人员申请开通,审批同意后方可使用。 修改高级配置参数,可能导致任务无法正常执行,请谨慎修改。 调试节点 执行压测的调试机。 调试节点在资源组创建成功后不可修改。 执行节点 执行压测的执行机,即在压测过程中能够提供自身性能数据的施压目标机器。 单击“创建”。
  • SSB测试结果 经过针对SSB宽表场景对DWS和开源OLAP产品ClickHouse的对比测试发现: 使用hstore_opt表,配合turbo存储、turbo引擎, DWS查询性能整体优于开源产品ClickHouse 1.3倍。 固定query_dop=16调优后,DWS查询性能全面超越ClickHouse,是该产品的3.73倍。 表1 SSB测试结果 SSB DWS ClickHouse - 开箱性能 query_dop=16 - Q1.1 0.0670 0.05 0.059 Q1.2 0.0264 0.022 0.021 Q1.3 0.0836 0.057 0.022 Q2.1 0.2309 0.041 0.254 Q2.2 0.3015 0.163 0.281 Q2.3 0.2398 0.05 0.214 Q3.1 0.3182 0.074 0.434 Q3.2 0.1823 0.042 0.348 Q3.3 0.1759 0.081 0.299 Q3.4 0.0239 0.014 0.025 Q4.1 0.2951 0.103 0.456 Q4.2 0.0942 0.037 0.171 Q4.3 0.0645 0.02 0.146 总时长(s) 2.1032 0.754 2.73 父主题: SSB性能测试
  • TPC-DS测试结果 本测试主要包括使用存算一体和存算分离两种部署架构下,TPC-H 1T规模数据集的开箱查询性能,共99个查询。存算一体查询总耗时为971.45s,存算分离查询总耗时为1035.80s。详细结果见下表。 表1 TPC-DS测试结果 TPC-DS查询 8.3.0 9.1.0 - 存算一体(s) 存算一体(s) 存算分离(s) Q1 2.03 1.21 0.59 Q2 9.14 4.00 5.10 Q3 1.52 1.40 1.96 Q4 200.44 173.61 181.80 Q5 3.11 2.26 3.48 Q6 0.39 0.29 0.43 Q7 1.85 1.74 2.23 Q8 0.72 0.42 0.58 Q9 11.14 15.36 17.16 Q10 1.08 1.07 1.05 Q11 92.20 62.56 66.79 Q12 0.20 0.13 0.22 Q13 2.50 2.86 3.63 Q14 74.98 23.45 24.90 Q15 2.11 0.56 0.45 Q16 6.51 3.28 4.28 Q17 2.93 3.74 5.29 Q18 2.16 1.16 2.06 Q19 0.70 0.69 0.84 Q20 0.18 0.10 0.17 Q21 0.18 0.27 0.17 Q22 5.84 2.00 14.78 Q23 144.71 44.33 48.74 Q24 8.55 4.76 6.74 Q25 3.10 3.34 4.17 Q26 0.63 0.53 0.62 Q27 2.03 1.79 2.77 Q28 13.32 13.20 14.74 Q29 2.50 2.96 3.61 Q30 0.73 0.38 0.44 Q31 3.73 2.85 3.08 Q32 0.18 0.91 0.20 Q33 1.28 1.06 1.22 Q34 2.13 2.51 3.27 Q35 3.00 1.89 2.30 Q36 6.21 1.67 17.93 Q37 0.34 0.39 0.51 Q38 52.24 37.43 37.78 Q39 5.57 3.51 3.11 Q40 0.66 0.13 0.24 Q41 0.04 0.03 0.09 Q42 0.70 0.73 0.60 Q43 1.99 1.35 1.79 Q44 3.25 3.66 4.27 Q45 0.82 0.56 0.79 Q46 4.63 4.44 4.62 Q47 6.91 4.83 6.22 Q48 2.37 2.45 3.55 Q49 3.01 3.13 4.64 Q50 5.82 6.70 5.09 Q51 10.67 5.07 5.25 Q52 0.70 0.72 0.68 Q53 0.88 0.86 1.05 Q54 3.96 3.20 4.21 Q55 0.66 0.53 0.59 Q56 0.84 0.76 0.94 Q57 3.12 2.26 2.09 Q58 0.76 0.49 0.69 Q59 17.30 8.75 10.42 Q60 1.75 1.31 1.46 Q61 1.10 1.03 1.45 Q62 1.29 0.83 1.07 Q63 0.86 0.84 1.05 Q64 14.20 11.57 16.54 Q65 6.92 4.09 4.84 Q66 1.50 1.16 1.35 Q67 153.90 131.56 196.11 Q68 3.65 3.13 3.66 Q69 0.93 0.69 0.82 Q70 23.13 3.07 32.01 Q71 2.33 2.34 2.60 Q72 3.69 4.24 3.81 Q73 1.40 1.72 2.32 Q74 37.27 24.38 27.55 Q75 11.85 5.99 7.91 Q76 3.37 3.21 3.65 Q77 1.30 1.07 1.56 Q78 152.21 97.02 42.98 Q79 4.49 4.25 5.15 Q80 3.56 2.35 3.93 Q81 0.64 0.33 0.42 Q82 0.75 0.70 1.31 Q83 0.15 0.09 0.26 Q84 0.24 0.26 0.42 Q85 2.78 1.81 2.16 Q86 2.59 0.35 3.07 Q87 78.17 123.22 56.21 Q88 6.90 9.40 11.20 Q89 2.61 1.85 1.92 Q90 0.64 0.60 1.13 Q91 0.15 0.12 0.26 Q92 0.20 0.26 0.24 Q93 7.53 7.44 5.84 Q94 3.49 1.93 2.72 Q95 29.57 31.04 28.55 Q96 1.49 1.96 2.66 Q97 8.49 5.31 5.81 Q98 1.09 0.85 0.93 Q99 2.37 1.76 1.82 SUM 1321.757 971.45 1035.80 父主题: TPC-DS性能测试
  • TPC-H测试结果 DWS测试了使用存算一体和存算分离两种部署架构下,TPC-H 1T规模数据集的开箱查询性能,共22个查询。存算一体查询总耗时为234.23s,存算分离查询总耗时为261.19s。 详细性能数据见下表。 表1 TPC-H测试结果 版本 8.3.0 9.1.0 - 存算一体 存算一体 存算分离 Q1 16.97 6.58 8.29 Q2 1.44 1.51 1.76 Q3 13.02 10.13 10.51 Q4 65.56 18.59 17.65 Q5 21.90 14.55 15.64 Q6 0.84 0.52 0.68 Q7 11.08 11.92 13.59 Q8 87.18 16.49 17.22 Q9 55.98 29.42 41.29 Q10 12.20 9.67 10.35 Q11 3.57 3.22 3.94 Q12 5.92 8.73 9.96 Q13 14.28 11.62 12.15 Q14 1.87 1.66 1.83 Q15 2.24 1.23 1.45 Q16 4.52 3.75 4.09 Q17 10.54 7.38 8.45 Q18 47.97 31.27 30.74 Q19 110.03 8.13 8.74 Q20 10.07 6.23 7.18 Q21 28.82 27.93 31.83 Q22 7.04 3.70 3.83 总时长(s) 533.05 234.23 261.19 父主题: TPC-H性能测试
  • 授权性能测试服务创建私有资源组 使用租户账号登录性能测试服务控制台,在左侧导航栏单击“测试资源”,进入私有资源组页面。 单击“创建私有资源组”,进入授权页面。 勾选“我已阅读并同意《华为云用户协议》”,单击“立即授权”。 界面右上角显示“授权成功”,表示已授权性能测试服务创建私有资源组。 授权成功后,在 IAM 控制台的“委托”界面,系统会自动创建一条名为“cpts_admin_trust”的委托,此委托包含“CCE Administrator”和“VPCEndpoint Administrator”权限。
  • 为IAM用户配置相关的权限 使用租户账号登录IAM控制台,为IAM用户配置如下权限,具体操作请参考 统一身份认证 服务。 编号 场景 配置权限 1 租户级操作CodeArts PerfTest资源场景 CodeArts PerfTest Administrator。 2 用户级操作CodeArts PerfTest资源场景 CodeArts PerfTest Developer,如果需要使用私有资源组,还需要配置CodeArts PerfTest Resource Developer。 3 创建CCE场景 基于场景1或场景2,还需要配置CCE Administrator,E CS CommonOperations,VPC FullAccess,详见 CCE权限管理 。 4 创建私有资源组场景 如果没有创建CCE,需要先按照场景3配置权限,创建CCE。 首次创建私有资源组,需要使用租户账号/管理员账号授权性能测试服务创建/修改租户的CCE和VPCEndPoint。 如果已经配置了CodeArts PerfTest Administrator,无需其他用户权限;如果已经配置了CodeArts PerfTest Developer,还需要配置CodeArts PerfTest Resource Admnistrator。 5 购买套餐包场景 基于场景1或场景2,还需要配置BSS Finance。 6 智能分析场景 应用监控:场景1已集成所需权限;基于场景2,还需要配置 APM FullAccess。 主机监控:场景1或场景2已集成,无需另外添加。
  • 全局变量功能是如何使用的? 打开JMeter脚本-Test Plan,在页面右侧User Defined Variables定义变量。 在脚本中引用变量 登录性能测试服务控制台,在左侧导航栏选择“JMeter测试工程”。 单击待导入全局变量的工程名称,进入“测试计划列表”页签。 单击待添加全局变量的测试任务名称,进入线程组页面。 单击页面右上方的“全局变量”,在弹出的对话框中单击“添加变量”。 变量有两种类型,分别是静态变量和均分变量: 静态变量:以字符串形式下发内容,当脚本分布式执行时,每个节点获取到的变量值一样,如,下发静态变量successRate=0.8,2000并发,分两个执行器执行,每个执行器中的脚本中变量successRate的值都是0.8。 均分变量:以整数的形式下发内容,当脚本分布式执行时,每个节点获取到的变量值平均分配,平均分配时采用整数除法,余数会被分配到其中一个节点,例如: 下发均分变量tps=100,分四个执行器,每个执行器中的脚本中的变量tps的值是25。 下发均分变量tps=20,分3个执行器,每个执行器中的脚本中的变量tps的值是8,6,6。 下发均分变量tps=1,分四个执行器,每个执行器中的脚本中的变量tps的值是1,0,0,0。 综上,使用均分变量时需注意: 如果被分配的值对是否均分非常敏感,请手动设置执行器数,确保变量的值是执行器数的整数倍。 如果被分配的值对是否均分不严格敏感,建议将被分配的值尽量调大,减少整数除法余数的影响,使其基本平均分配。 如果被分配的值不能为0,请手动设置执行器数,并确保变量的值大于执行器数。 在全局变量中配置的变量,如果脚本的Test Plan - User Defined Variables中存在,则会覆盖脚本中定义的值。 如果不存在,会在脚本的Test Plan – User Defined Variables出新建对应变量。 父主题: JMeter工程使用
  • 怎样确定压测任务顺序读取全局变量的值? 如果您想确认压测任务是否会顺序读取全局变量的值,可以通过以下步骤测试: 设置全局变量,取值数量建议在10个以内(例如设置取值为6、5、4、3、2、1),方便快速测试。 设置一个用例,在此用例报文的body体中引用1中设置的全局变量,执行阶段设为按次数方式,并发为1、并发次数为10,启动此用例。 在性能报告中的“各项测试指标”中,单击操作图标“”,单击“下载请求日志”,查看请求体中全局变量的取值是否和设置的顺序一致。 通过日志可确认后续的取值是否顺序读取,当读取到最后一个值时,返回读取第一个值。 父主题: 压测工程管理
  • 性能测试服务报告界面的RPS和TPS有什么区别? RPS是Requests Per Second的简称,用例的RPS=用例总请求数/用例的运行时长;TPS是Transactions Per Second的简称,用例的TPS=用例的事务数/用例的运行时长,其中事务定义为:性能测试服务压测过程中,会循环执行用例中的所有测试步骤,每完成一次循环,算做一次事务(transaction)。 父主题: 压测报告管理
  • 使用JMeter原生压测 JMeter测试计划调试成功后,保存jmx文件以及csv文件。 准备测试资源,创建私有资源组。 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。 (可选)首次使用时,请根据提示信息,授权性能测试服务创建私有资源组。 进入创建资源组页面后,如果是首次使用没有云容器引擎服务CCE集群,需要先执行创建集群然后再创建资源组。如果已有可用的云容器引擎服务CCE集群,直接执行创建资源组。 创建集群。 单击页面上方的“创建集群”,进入购买CCE集群页面。创建集群操作请参考购买CCE集群,设置集群参数。 集群管理规模选择与执行节点个数相关,请根据需要压测的并发用户数,创建对应规格的节点。例如,需要20个执行节点,那么创建集群时集群规模选择50节点即可满足业务需求。 CCE集群的网络模型建议选择“容器隧道网络”,容器网段和服务网段需要与被测应用保持一致。 单击“下一步:插件配置”,默认选择即可。 单击“下一步:规格确认”,确认集群配置信息无误后,勾选已阅读使用说明,单击“提交”等待集群创建,集群创建预计需要6-10分钟。 集群创建成功后,返回集群管理页面,单击要创建节点的集群所在行的,进入创建节点页面。创建节点操作请参考创建节点,设置节点参数。 节点规格至少为vCPU为4核,内存8GB。 操作系统需选择欧拉EulerOS。 创建的节点数量至少需要2台(1台调试节点、1台执行节点),具体数量由压测对象要求规格决定。例如,压测10万并发用户数,vCPU为4核,内存8GB的资源需要21个执行节点(1个调试节点,20个执行节点)。 当CCE集群节点与被测应用不在同一VPC网络时,建议CCE集群节点绑定弹性IP。可使用已有的弹性IP,如果没有弹性IP也可以选择自动创建。自动创建弹性IP时,计费方式推荐按流量计费,带宽设置尽可能选择较大值,否则可能影响压测效果。系统根据您的配置创建弹性IP,并自动为每个节点进行分配。当创建的弹性IP数量小于节点个数时,会将弹性IP随机绑定到节点上。 单击“下一步:规格确认”,确认节点配置信息无误后,勾选已阅读使用说明,单击“提交”等待节点创建。 节点创建成功后,返回性能测试服务控制台。 创建资源组。 在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。 参照表1设置基本信息。 表1 创建私有资源组 参数 参数说明 资源组名称 新建私有资源组的名称,可自定义。 节点集群 在下拉框选择已创建的CCE集群。 调试节点 选择执行压测的管理机。 调试节点在资源组创建成功后不可修改。 执行节点 选择执行压测的执行机,即在压测过程中能够提供自身性能数据的施压目标机器。 单击“创建”。 创建JMeter测试工程。 返回性能测试服务控制台,在左侧导航栏中选择“JMeter测试工程”,单击“创建JMeter测试工程”,输入工程名称,单击“确定”。 导入jmx文件。 在JMeter测试工程页面,单击编辑测试计划。 在“测试计划”页签中,单击“创建测试计划”。 在弹出的窗口中单击“添加文件”,选择格式为jmx的文件,单击“上传文件”,导入成功后将自动关闭窗口并返回“测试计划列表”页签,可以看到已添加的测试计划。 图1 导入jmx文件 jmx文件大小限制为10M。 当前支持基本的JMeter脚本,包括线程组、HTTP请求、HTTP信息头管理器、请求参数、超时时间,BeanShellt等。建议您使用5.2.1以上版本的脚本进行导入,以免出现脚本解析错误。 (可选)在“测试计划”页签中,单击“第三方jar包”,在弹出的窗口中单击“本地导入”,选择测试计划所依赖的jar包并导入,导入成功后关闭窗口。 图2 导入jar包 jar包大小限制为10M。 (可选)导入变量文件。 在“测试计划”列表对应的测试名称后单击,选择“变量文件”。在弹出的窗口中单击“本地导入”,选择测试计划所引用的变量文件并导入,导入成功后“关闭”窗口。 图3 导入变量文件1 图4 导入变量文件2 编辑线程组。 单击JMeter测试计划的任务名称进入线程组列表,可以编辑线程组的部分参数,编辑完成后单击“确定”。 线程数:对应JMeter本地程序中的“Number of Threads”。 预热时间:对应JMeter本地程序中的“Ramp-up period”。 循环次数:填写需要测试的循环数。 图5 编辑线程组 调试JMeter测试任务。 单击“调试”,选择对应的测试资源组作为执行器后单击“启动”启动调试。如果调试结果报错,可根据日志信息,修改用例后重新调试。 图6 启动调试 执行JMeter测试任务。 单击“启动”,在“启动测试任务”对话框中选择“资源组类型”和“企业项目”后,单击“启动”,启动测试任务。 图7 启动测试任务 查看测试报告。 测试任务启动成功后,单击“查看报告”,可以查看压测过程中各项指标的监控数据以及图表报告。 压测结束后,系统会生成离线测试结果报告,可下载离线报告,查看已经执行完成的测试任务报告。 父主题: 实施步骤