服务化框架的性能调优往往如同置身 “黑盒”,问题根源难以精准定位 —— 比如请求量攀升后响应速度显著下降、硬件设备更换后性能表现迥异等场景,都难以快速排查。
msServiceProfiler(服务化调优工具)提供全链路性能剖析,清晰展示框架调度、模型推理等环节的表现,帮助用户快速找到性能瓶颈(帮助判断是框架问题还是模型问题),从而有效提升服务性能。
[object Object]
- 在使用性能调优工具前请先完成msServiceProfiler工具安装,具体请参见《》。
- 已完成对应服务框架的安装,并通过可用性验证(服务能够正常启动,且可通过官方示例脚本或 API 成功发起一次推理请求):
[object Object]
msServiceProfiler 的采集能力需要在部署服务之前,通过设置环境变量 [object Object]方能生效。如果环境变量拼写错误,或者没有在部署服务之前设置环境变量,都无法使能采集能力。
通用说明
[object Object]:指定性能采集配置文件(JSON),用于控制是否开启采集、数据输出目录等。
示例(以当前工作目录下的配置文件为例)
[object Object]
[object Object] 的值需要指定到 json 文件名,该 json 文件即为控制性能数据采集的配置文件,比如采集性能元数据存放位置、算子采集开关等,具体字段介绍参考。若路径下无配置文件,工具将自动生成默认配置(采集开关默认为关闭状态)。
[object Object]
不同框架下的“运行服务”步骤不同,但对 msServiceProfiler 来说,关键是在服务进程启动之前完成环境变量配置,之后按照各框架原有方式启动服务。
按照《》启动推理服务即可。若正确配置了 [object Object],在服务部署完成之前会输出如下以 [object Object] 开头的日志,说明 msServiceProfiler 已启动,例如:
如果 [object Object] 环境变量所指定的配置文件不存在,工具会自动创建,日志类似:
在完成 vLLM-Ascend 环境准备和变量配置后,按 vLLM 原生方式启动服务,例如:
首次集成时,需要在 SGLang 服务化启动入口中接入 msServiceProfiler,之后再按常规方式启动服务。
服务部署成功之后,可以通过修改 [object Object] 对应配置文件中的字段来进行精准控制采集行为(此处仅以以下三个字段为例):
表 1 参数说明
一般来说,如果 [object Object] 一直为 1,当服务从收到请求的那一刻起,工具会一直采集,直到请求结束,[object Object] 下的目录大小也会不断增长,因此推荐用户仅采集关键时间段的信息。
每当 [object Object] 字段发生变更时,工具都会输出对应的日志进行告知,例如:
或:
当 [object Object] 由 0 改为 1 时,配置文件中的所有字段都会被工具重新加载,从而实现动态更新。
同样,工具会在 [object Object](默认 [object Object])下生成推理服务对应的原始性能数据。
安装环境依赖。
[object Object]执行解析命令示例(通用形式):
[object Object][object Object]指定为 中 prof_dir 参数指定的路径。解析完成后,默认在命令执行目录下生成解析后的性能数据文件。
[object Object]
解析后的性能数据包含db格式、csv格式和json格式,用户可以通过csv进行请求、调度等不同维度的快速分析,也可以通过MindStudio Insight工具导入db文件或者json文件进行可视化分析,详细操作和分析说明请参见《》中的“”章节。
根据MindStudio Insight工具的可视化呈现性能数据,如下图所示: