进程老化模型使用说明文档

来源飞书 wiki(obj_token: JPpKdFE50oEosSx0Qq3cVBTUnNh)

原文 22 张图片已全部下载并上传至 MinIO(blogimg bucket),正文图片为永久直链。

  • 注意:电脑配置 ubuntu22.04 及以上版本

说明:用例测试场景同动态模型 2.0,测试一轮预计 6H(增量采集 mem_use 日志时间会久一些);

手机刷机后不能执行过 remount,不然 4.1 中的采集 Native 堆的分配调用栈会不全,但不影响内存总指标**!!!**

注意事项:

  • 每次执行注意更新最新代码:git pull
  • 老化执行完毕后,请确认一下清后台按钮是否点击成功,避免存在未适配导致数据不准;
  • 如果在执行中遇到 tdk.commons.verify.VerifyException: 请绑定用户信息,即在浏览器访问的同志,请点击链接认证

手机测试环境预置

动态模型2.0预置文档

代码获取 & 主机环境预置

git 测试分支:dev_wangbixue_dynamic_model_tdk,暂不支持封装包

当前临时测试分支:dev_wangbixue_dynamic_model_aging(临时的,后续 dev_wangbixue_dynamic_model_tdk ui 执行稳定后会废弃)

pycharm 终端控制台执行:
pip install test-develop-kit -i https://pkgs.d.xiaomi.net/artifactory/api/pypi/pypi-gliese-virtual/simple --force-reinstall
pip install -r requirements.txt

代码打开层级:

性能全场景测试工具代码打开层级界面

performance_full_test 项目的代码打开层级结构

创建配置文件 & 执行

性能自动化工具执行参数-进程老化-国内

  • 基于上面模版创建副本,根据实际情况修改配置文件中测试任务信息、测试机型信息,注意修改测试机设备序列号、辅助机设备序列号,选取待测测试用例;
  • 打开分享 小米科技;

飞书文档分享界面:分享范围选择小米科技

飞书文档权限设置界面:允许内容被分享到关联组织

  • 老化测试默认配置:

进程老化模型默认配置:测试前"获取内存 dumpsys 间隔自定义",测试后"获取 mts 数据"

因质疑以及不需要 bugreport,故取消,更新时间 2026 年 4 月 17 日

  • 将飞书链接粘贴到 run_test_config.yml,注意 : 后面有个空格

addCriterion() 函数代码:进程老化时 url 设置

  • 执行 main.py 文件;

额外数据获取说明(研发自定义选择)

老化场景 Native 堆日志采集 @钟万勇

这里讲述的是在上面的正常老化内存总指标采集结束后,如果发现 Native 堆占用高需要进一步拆解,可以使用下面的采集方式重新跑老化步骤进行 Native 堆的调用栈采集

Native 堆调用栈采集

🍞 这里说明的是在正常老化测试配置完后,为了使用 mem_use 工具抓取内存详细日志的增量配置

在此增量配置前需要完成老化测试的基础配置,例如测试的设备,测试轮次,测试用例范围等等。

注意:每次一定要从最新的《性能自动化工具执行参数-进程老化-国内》链接创建自己的副本。

  • (1)在执行序列页面的测试前只执行一次的操作配置项中勾选”执行 memuse 数据获取”和”获取 showmap 数据间隔自定义”两项。

执行序列:勾选获取 showmap 数据间隔自定义、执行 memuse 数据获取

  • (2)在特定参数页面的模型特定参数配置中配置 mem_use 和 showmap 相关的参数(下图中红框中的参数都需要正确配置)。

特定参数:mem_use_device_name、mem_use_start_time 等参数配置

红框中的参数配置直接参数说明即可。但是 mem_use 启动参数的配置需要注意一下:

mem_use_start_time:填写 mem_use 采集工具的启动时机。

init_rc:在开机阶段启动 mem_use 采集进程(内核当前不支持)。

​ before_test: 在老化测试用例执行之前启动 mem_use 采集进程。

​ init_rc_tmp:在开机阶段启动 mem_use 采集进程。(当前为规避内部 BUG 的模式,此模式需要使用特定 Patch 版本,请找 @印闯 协调 Patch 版本)

  • (3)老化测试完成后,Native 内存分析需要 mem_use 采集的日志和 showmap 日志。

mem_use 内存日志存放路径为:{老化测试 main.py 所在目录}\test_data\进程老化\厂商\型号\设备序号\日期\mem_use

mem_use 内存日志存放路径文件夹结构

showmap 日志存放路径为:{老化测试 main.py 所在目录}\test_data\进程老化\厂商\型号\设备序号\日期\showmap_all

showmap_all 文件夹下的多个 showmap 文件列表

Native 堆数据解析

参考指导文档:内存工具系列-老化场景日志解析指导 中的【Native 内存日志解析指导】章节。

注意:不用关注 1.showmap 和 1.smaps 文件的差异。

老化场景 Java 堆日志采集 @钟万勇

Java 堆调用栈采集

🍞 这里说明的是在正常老化测试配置完后,为了抓取 Java 堆调用栈日志的增量配置

注意:每次一定要从最新的《性能自动化工具执行参数-进程老化-国内》链接创建自己的副本。

  • (1)在执行序列页面的测试前只执行一次的操作配置项中勾选”获取内存 dumpsys 间隔自定义”、“获取 showmap 数据间隔自定义”和”获取 hprof 数据间隔自定义”三项。

执行序列:序号 1-13 操作勾选,含 showmap、hprof 数据间隔自定义

  • (2)在特定参数页面的模型特定参数配置中配置 dumpsys、showmap 和 hprof 相关的参数(下图中红框中的参数都需要正确配置)。

特定参数:dumpsys_meminfo_dur、is_get_hprof、mbt_hprof_process_name 等配置

红框中的参数配置直接参数说明即可。

  • (3)老化测试完成后,Java 堆内存分析需要 gfx 日志,hprof 日志和 showmap 日志。

gfx 日志存放路径为:{老化测试 main.py 所在目录}\test_data\进程老化\厂商\型号\设备序号\日期\gfx_info

hprof 日志存放路径为:{老化测试 main.py 所在目录}\test_data\进程老化\厂商\型号\设备序号\日期\hprof_all

showmap 日志存放路径为:{老化测试 main.py 所在目录}\test_data\进程老化\厂商\型号\设备序号\日期\showmap_all

日志存放路径下的文件结构:gfx_info、hprof_all、showmap_all

内存峰值信息解析

参考指导文档:内存工具系列-老化场景日志解析指导 中的【老化场景单独解析内存峰值信息】章节。

mmstat/mmperf 数据获取

  • 配置方式:根据实际情况勾选

获取 mmstat 数据、获取 mmperf 数据选项

gfx—info 数据获取

is_get_gfxinfo 参数(默认值 TRUE,是否获取 gfxinfo 进程)

mts-showmap 数据获取(老化后静止 8min)

修改 setting 配置文件:

extools 文件夹下的 mts_main.py 和 settings.ini 文件

执行成功率

见 case_run_status.xlsx

性能全场景测试工具用户使用指南

查看 ui 失败原因详看上文 1.4 中的第 4 点

数据说明

任务结果结果文件夹(时间文件夹):

test_20260310204207 文件夹内容结构

峰值内存结果见

峰值内存结果文件夹 20260401

解析方式读取 meminfo_all 中的时间文件

计算详情见:PDT工具使用说明文档—老化前后&异常拉起统计

老化后剩余内存

一键清理清后台,清除通知栏后静置 8min 后工具会自动执行,原理如下

mts --stress --no_minidump -p {输出路径} -mp {miui_standard 文件路径}

老化后剩余内存结果见:

时间文件夹下 memdist 文件夹

memdist 文件夹下的内存分布数据文件

驻留指标

驻留指标输出以及原始文件

process_record_info.xlsx 和 process_record 文件夹

问题解答(有问题先自查)

性能相关工具使用问题答疑汇总

旧版本进程老化支持

性能自动化工具执行参数-进化老化旧版本-国内/国际

修改 Message.ini,选择国内/国际应用

[Message]
device = FMR0223830055358
count = 99999
test_type = 1
run_time = 86400  # 24H, 默认 86400s
apps =
    # weixin;douyin;kuaishou;zhuomian;qq;kuaishoujisu;bilibili;douyinjisu;jinritoutiao;tengxunshipin;taobao;pinduoduo;baidu;ucliulanqi;jinritoutiaojisu;aiqiyi;fanqiemianfeixiaoshuo;qqliulanqi;zhuangtailan;weibo;youkushipin;xiguashipin;zhifubao;qimaomianfeixiaoshuo
    # YouTuBe;WhatsApp;Facebook;Instagram;MXPlayer;Lite;Messenger;Flipkart;WABusiness;PLAYit;AmazonShopping;Telegram;Snapchat;PrimeVideo;Dailyhunt;WPSOffice;miBrowser;Moj;Myntra;Twitter;CapCut;Zapya;Teams;StarMaker

进程老化模型相关代码及文件结构(arcanz_tools 等)

配置文件,应用用 ; 划分,支持应用同旧版本进程老化工具;

Linux 和 Windows 系统下 Message.ini 配置文件内容