执行解析

- 数据采集时会锁定落盘文件,需要等待采集结束之后才能启动解析,否则将提示报错“db is lock”。
- 数据解析没有结束前,不可再次开启动态采集,否则可能出现降低采集性能等问题。
基础解析
执行解析命令示例:
python3 -m ms_service_profiler.parse --input-path ${PATH}/prof_dir/
参数 |
说明 |
是否必选 |
---|---|---|
--input-path |
指定性能数据所在路径,会遍历读取该路径下所有名为msproftx.db或ascend_service_profiler_*.db的数据库。 |
是 |
--output-path |
指定解析后文件生成路径,默认为当前路径下的output目录。 |
否 |
--log-level |
设置日志级别,取值为:
|
否 |
--format |
设置性能数据输出文件的导出格式,取值为:
不使用format则默认全部导出,可以配置一个或多个参数,配置示例:--format db,--format db csv。 说明:
若数据采集时,配置acl_task_time参数值为2,则解析结果文件仅支持导出json和db格式。 |
否 |
多维度解析
进行基础解析的同时,对性能数据按照不同维度(request维度、batch维度、总体服务维度)进行拆解,详细参数请参见表1。
目前提供如下两种不同的使用方式。且如下方式会在基础解析的基础上增加输出文件request_summary.csv、batch_summary.csv、service_summary.csv。
- 通过安装msserviceprofiler软件使用。
- pip安装msserviceprofiler。
pip install -U msserviceprofiler
- 执行如下命令进行多维度解析。
msserviceprofiler analyze --input-path=${PATH}/prof_dir
- pip安装msserviceprofiler。
- 直接拉取源码使用。
细粒度拆解
可对不同batch数据进行细粒度拆解,详细参数请参见表2。
- 通过安装msserviceprofiler软件使用。
- pip安装msserviceprofiler。
pip install -U msserviceprofiler
- 执行细粒度拆解。
- 拆解prefill的batch数据。指定prefill的batch size大小进行性能拆解。
msserviceprofiler split --input-path=${PATH}/prof_dir --prefill-batch-size=4 --prefill-number=100
或指定prefill的rid进行性能拆解。
msserviceprofiler split --input-path=${PATH}/prof_dir --prefill-rid=10
执行完毕后在结果路径下生成输出文件prefill.csv。
- 拆解decode的batch数据。指定decode的batch size大小进行性能拆解。
msserviceprofiler split --input-path=${PATH}/prof_dir --decode-batch-size=10 --decode-number=100
或指定decode的rid进行性能拆解。
msserviceprofiler split --input-path=${PATH}/prof_dir --decode-rid=10
执行完毕后在结果路径下生成输出文件decode.csv。
- 拆解prefill的batch数据。
- pip安装msserviceprofiler。
- 直接拉取源码使用。拉取msit代码仓后在msserviceprofiler目录下执行命令。
- 拆解prefill的batch数据。指定prefill的batch size大小进行性能拆解。
python3 msserviceprofiler/__main__.py split --input-path=${PATH}/prof_dir --prefill-batch-size=4 --prefill-number=100
或指定prefill的rid进行性能拆解。
python3 msserviceprofiler/__main__.py split --input-path=${PATH}/prof_dir --prefill-rid=10
执行完毕后在结果路径下生成输出文件prefill.csv。
- 拆解decode的batch数据。指定decode的batch size大小进行性能拆解。
python3 msserviceprofiler/__main__.py split --input-path=${PATH}/prof_dir --decode-batch-size=10 --decode-number=100
或指定decode的rid进行性能拆解。
python3 msserviceprofiler/__main__.py split --input-path=${PATH}/prof_dir --decode-rid=10
执行完毕后在结果路径下生成输出文件decode.csv。
- 拆解prefill的batch数据。
参数 |
说明 |
是否必选 |
---|---|---|
--prefill-batch-size |
指定拆解的prefill batch的batch_size大小,该值可以从batch.csv中的batch_size字段中获取,默认值为0,代表不执行prefill性能拆解。 |
否 |
--prefill-number |
指定拆解的prefill batch的数量,用于统计执行时间的最大值、最小值、平均值和标准差,默认值为1。 |
否 |
--prefill-rid |
指定拆解的prefill batch的请求id,该值可以从request.csv中的http_rid字段中获取,默认值为-1,代表不执行prefill性能拆解。 |
否 |
--decode-batch-size |
指定拆解的decode batch的batch_size大小,该值可以从batch.csv中的batch_size字段中获取,默认值为0,代表不执行decode性能拆解。 |
否 |
--decode-number |
指定拆解的decode batch的数量,用于统计执行时间的最大值、最小值、平均值和标准差,默认值为1。 |
否 |
--decode-rid |
指定拆解的decode batch的请求id,该值可以从request.csv中的http_rid字段中获取,默认值为-1,代表不执行decode性能拆解。 |
否 |