perf工具crash的问题

Posted wangdong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perf工具crash的问题相关的知识,希望对你有一定的参考价值。

perf抓取时系统crash的情况。找前同事了解到perf工具导致系统crash的一种情况,

perf工具默认是使用cycles,这个硬件事件是使用NMI,可能会导致内核错误。

技术分享图片

之前文档上的perf命令更新下,指定使用软件事件cpu-clock(注意:不知道perf命令还有没有别的坑,请注意生产上谨慎使用)

perf record -p `pidof mysqld` -e cpu-clock -g -o /tmp/perf.data sleep 10

 

这两个事件的区别:

cpu-clock可以用来表示程序执行经过的真实时间,而无论CPU处于什么状态(Pn(n非0)或者是C状态);

而CPU cycles则用来表示执行程序指令花费的时钟周期数,如果CPU处于Pn(n非0)或者是C状态,则cycles的产生速度会减慢。

也即,如果你想查看哪些代码消耗的真实时间多,则可以使用cpu-clock事件;而如果你想查看哪些代码消耗的时钟周期多,则可以使用CPU cycles事件。

 

参考资料:

http://github.tiankonguse.com/blog/2016/03/29/perf-record.html

以上是关于perf工具crash的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何用perf工具

perf 性能分析工具

Linux中CPU性能分析工具perf简单使用(亲测可用)

Perf -- Linux下的系统性能调优工具,第 1 部分

Perf -- Linux下的系统性能调优工具

Perf -- Linux下的系统性能调优工具