perf参数问题处理

单板启动后,会经常看到提示“perf  interrupt took too long (n > x)”,这样的打印信息。

相关配置参数有:

/proc/sys/kernel/下

perf_cpu_time_max_percent:    perf分析工具最大能够占用CPU性能的百分比0:不限制1~100:百分比值
perf_event_max_sample_rate:    设置perf_event的最大取样速率,默认值为100000

perf采样使用会占用cpu,所以默认限制最大是perf_cpu_time_max_percent=25

超过就会触发上面这个告警,并调整采样速率,保持不要超过限制,也就是说如果你设置了perf_event_max_sample_rate。

那么出现上面这个告警后,perf_event_max_sample_rate的值会被调整。

可以通过调高perf_cpu_time_max_percent来解决。

如果调高也不能解决,就设置为0,此时就不会在去监控cpu的占用率了。

 

### 如何使用 `perf` 抓取并生成火焰图 为了利用 `perf` 进行性能剖析并最终生成火焰图,需遵循一系列特定命令和工具组合来完成数据收集与可视化过程。 #### 数据采集阶段 通过 `perf record` 命令可以捕捉应用程序运行期间的事件样本。此操作会创建一个名为 `perf.data` 的文件,默认情况下位于当前工作目录下[^1]: ```bash sudo perf record -F 99 -a -g -- sleep 30 ``` 上述指令表示以每秒99次频率(-F参数)对整个系统(-a参数)进行全面采样,并附加调用链信息(-g参数),持续时间为30秒(sleep命令控制)。 #### 数据处理阶段 接着运用 `perf script` 将之前记录的数据转换成易于解析的形式,以便后续步骤能够顺利读取这些原始数据流。这里推荐采用折叠格式(folded format),它有助于简化堆栈跟踪结构,使得相同路径下的函数调用得以聚合显示[^2]: ```bash perf script | stackcollapse-perf.pl > out.perf-folded ``` 这段脚本首先执行 `perf script` 输出文本形式的追踪日志;紧接着管道符传递给 Perl 脚本 `stackcollapse-perf.pl` 处理,从而获得优化后的折叠版输出文件 `out.perf-folded`。 #### 可视化呈现阶段 最后一步则是借助 Brendan Gregg 开发的 FlameGraph 工具包中的 `flamegraph.pl` 来渲染SVG图形,实现直观展示各个函数占用CPU时间比例的效果[^3]: ```bash cat out.perf-folded | flamegraph.pl > perf.svg ``` 该命令将前面准备好的折叠型输入馈送到 `flamegraph.pl` 中进行绘图运算,所得结果保存至指定位置作为 SVG 文件供浏览器查看或进一步分享交流之用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值