CPU异常是应用在前台或后台持续的大量消耗CPU资源,CPU使用率长时间较高会导致耗电快、引起手机发热等,需要重点监控优化。CPU监控提供线上CPU指标,并提供一定的和CPU异常归因分析能力,根据火焰图定位CPU异常问题。
CPU指标确认总体CPU使用状态。
您可以通过以下筛选条件进行数据筛选。
CPU趋势展示了筛选条件下CPU指标的趋势图,默认展示CPU指标的样本量和平均值等分布趋势。
单击指标详情,查看指标趋势图、多维分布。
CPU指标监控提供两个核心指标CPU使用率(简称rate)和CPU使用速率(简称speed):
注意
iOS从线程信息里获取的CPU信息只有CPU使用率。
指标 | 计算方式/说明 |
---|---|
CPU使用率 | 采样窗口内,进程CPU时长/系统CPU时长 |
CPU使用速率 | 采样窗口内,进程CPU时长/自然时长 |
其他说明:
CPU指标详情页面,可以查看某个线程的使用率的趋势图和多维分析。
CPU异常是应用在前台或者后台持续的大量消耗CPU资源,导致耗电发热问题严重。通过堆栈树和火焰图来定位异常类和函数。
完成前提条件后,平台会根据SDK上报配置中,CPU监控模块下的指标应用在前台的进程CPU使用速率异常阈值和应用在后台的进程CPU使用速率异常阈值来判断CPU使用速率是否超过阈值。
如果CPU使用速率连续超过阈值,平台会根据SDK上报配置中,CPU监控模块下的指标线程CPU使用率异常阈值找到CPU使用率超过阈值的线程,抓取线程堆栈。
您可以通过以下筛选条件进行数据筛选。
CPU异常趋势展示了筛选条件下CPU异常上报变化的趋势图。指标数据的右侧可以查看与上一周期相比崩溃数据的变化。
指标说明:
指标 | 说明 |
---|---|
异常数 | 筛选条件下发生的错误总数 |
异常率 | 筛选条件下发生的错误总数/筛选条件下所有用户启动的总次数 |
影响用户数 | 筛选按条件下整体去重后影响的用户总数 |
整体影响用户比 | 筛选按条件下整体去重后影响的用户总数/筛选条件下整体去重后的活跃用户总数 |
平均影响用户比 | 各时间点的整体影响用户比求和/有值的时间点的个数 |
单次启动平均上报次数 | 平均每个用户异常期间上报日志数量,可以用来估算异常持续时间 |
CPU异常列表根据异常线程和高频异常堆栈的函数名进行聚合展示。
CPU异常功能收集的issue是一个持续时间窗口的所有CPU异常线程的信息+堆栈,因此收集的信息+堆栈是可以转换成火焰图的。
总调用树是将所有CPU异常线程的堆栈拍平,并聚合成一棵树,同时也能直接看火焰图。
其中每行函数左侧的数字表示“权重”,权重数值越大表示这行函数导致的CPU占用越多,因此火焰图中越宽的函数即表示“权重”越大。
线程调用树和总调用树的区别是以线程维度将信息+堆栈分开:
同时也能查看某一个CPU异常线程在这个时间窗口内的信息+堆栈。
issue汇总调用树代表的不再是这一个issue,而是这个issue族里面的所有issue的堆栈聚合。