昇腾社区首页
中文
注册

执行解析

基础解析

执行解析命令示例:

python3 -m ms_service_profiler.parse --input-path=${PATH}/prof_dir/
表1 参数说明

参数

说明

是否必选

--input-path

指定性能数据所在路径,会遍历读取该路径下所有名为msproftx.db或ascend_service_profiler_*.db的数据库。

--output-path

指定解析后文件生成路径,默认为当前路径

--log-level

设置日志级别,取值为:

  • debug:调试级别。该级别的日志记录了调试信息,便于开发人员或维护人员定位问题。
  • info:正常级别。记录工具正常运行的信息。默认值。
  • warning:警告级别。记录工具和预期的状态不一致,但不影响整个进程运行的信息。
  • error:一般错误级别。
  • fatal:严重错误级别。
  • critical:致命错误级别。

--format

设置性能数据输出文件的导出格式,取值为:

  • json:表示只导出json格式的结果文件。
  • csv:表示只导出csv格式的结果文件。
  • db:表示只导出db格式的结果文件。生成的db文件中已包含全量数据,可在MindStudio Insight中进行展示。如需缩短解析时间/减少解析结果文件内存占用,推荐使用只导出db格式的结果文件。

默认全部导出,可以配置一个或多个参数,配置示例:--format db,--format db csv。

说明:

若数据采集时,配置acl_task_time参数值为2,则解析结果文件仅支持导出json和db格式。

多维度解析

  • 进行基础解析的同时,对性能数据按照不同维度(request维度、batch维度、总体服务维度)进行拆解。
  • pip安装msserviceprofiler
    pip install -U msserviceprofiler
  • 目前提供两种不同的使用方式。
    • 执行如下命令进行多维度解析。
      msServiceProfiler analyze --input-path=${PATH}/prof_dir
    • 直接拉取源码使用。
      拉取msit代码仓后在msserviceprofiler目录下执行命令。
      python3 msserviceprofiler/__main__.py analyze --input-path=${PATH}/prof_dir

      增加输出文件request_summary.csv、batch_summary.csv、service_summary.csv。

  • 进行基础解析的同时,也可对不同Batch数据进行细粒度拆解,如下示例。
    拉取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。

    表2 参数说明

    参数

    说明

    是否必选

    --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性能拆解。