服务化调优工具

服务化调优工具主要使用msServiceProfiler接口,在MindIE Service推理服务化进程中,采集关键过程的开始和结束时间点,识别关键函数或迭代等信息,记录关键事件,支持多样的信息采集,对性能问题快速定界。

工具操作如下:

以下仅提供服务化调优工具的快速入门,工具更多操作及接口、参数、字段等详细内容介绍请参见服务化调优工具

操作步骤

  1. 环境准备。

    请参见MindIE安装指南完成MindIE的安装和配置并确认MindIE Service可以正常运行。

  2. 在任意路径新建采集配置文件。

    服务化性能数据采集通过json配置文件,配置采集数据的开关、保存路径等,以ms_service_profiler_config.json文件名为例,配置文件格式如下:

    1
    2
    3
    4
    5
    6
    7
    8
    {
    	"enable": 1,
    	"prof_dir": "${PATH}/prof_dir/",
    	"profiler_level": "INFO",
    	"host_system_usage_freq": -1,
    	"npu_memory_usage_freq": -1,
    	"acl_task_time": 0
    }
    
    表1 参数说明

    参数

    说明

    是否必选

    enable

    是否开启性能数据采集的开关,取值为:

    • 0:关闭。
    • 1:开启。

    prof_dir

    采集到的性能数据的存放路径,可自定义,默认值为${HOME}/.ms_server_profiler。

    profiler_level

    数据采集等级,取值为INFO。

    host_system_usage_freq

    CPU和内存系统指标采集频率,默认关闭不采集。范围整数1~50,单位hz,表示每秒采集的次数。设置为-1时关闭采集该指标。

    说明:

    开启该功能可能占用较大内存。

    npu_memory_usage_freq

    NPU Memory使用率指标的采集频率,默认关闭不采集。范围整数1~50,单位hz,表示每秒采集的次数。设置为-1时关闭采集该指标。

    说明:

    开启该功能可能占用较大内存。

    acl_task_time

    开启采集算子下发耗时、算子执行耗时数据的开关,取值为:

    • 0:关闭。默认值,配置为0或其他非法值均表示关闭。
    • 1:开启。
    说明:

    该功能开启时会占用一定的设备性能,导致采集的性能数据不准确,建议在模型执行耗时异常时开启,用于更细致的分析。

  3. 数据采集。

    1. 配置环境变量,指定采集配置文件ms_service_profiler_config.json。
      export SERVICE_PROF_CONFIG_PATH="${PATH}/ms_service_profiler_config.json"
    2. 运行MindIE-Service服务。
    3. 动态启停采集任务。

      重新开启一个命令行窗口,用户可以通过修改ms_service_profiler_config.json配置中的“enable”字段,实时切换数据采集功能的开启和关闭。

      采集完成后在2prof_dir参数指定的路径下落盘Profiling性能数据。

  4. 数据解析。

    1. 安装环境依赖。
      python >= 3.10
      pandas >= 2.2
      numpy >= 1.24.3
      psutil >= 5.9.5
    2. 执行解析命令示例:
      python3 -m ms_service_profiler.parse --input-path=${PATH}/prof_dir/ --output-path=${PATH}/prof_dir/

      --input-path指定为2prof_dir参数指定的路径。

      解析完成后在--output-path参数指定的目录下生成解析后的性能数据文件,默认为当前目录。

  5. 数据可视化。

    解析后的性能数据支持多种可视化方式,推荐使用MindStudio Insight工具可视化,详细操作和分析说明请参见MindStudio Insight 用户指南中的“服务化调优”章节。