Linux性能剖析工具—perf

时间:2020-10-10 16:54:23   收藏:0   阅读:32

系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。

性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。

代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。

perf是一款Linux性能分析工具。Linux性能计数器是一个新的基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU(Performance Monitoring Unit))功能和软件(软件计数器、tracepoint)功能。通过perf,应用程序可以利用PMU、tracepoint和内核中的计数器来进行性能统计。它不但可以分析制定应用程序的性能问题(per thread),也可以用来分析内核的性能问题。

perf是一款很牛逼的综合性分析工具,大到系统全局性性能,再小到进程线程级别,甚至到函数及汇编级别。

1、cpu占用率很高,但是找不到高cpu的应用

碰到常规问题无法解释的CPU使用率情况时,首先要想到有可能是短时应用导致的问题,比如有可能是下面这两种情况。

第一,应用里直接调用了其他二进制程序,这些程序通常运行时间比较短,通时过top等工具也不容易发现。

第二,应用本身在不停地崩溃重启,而启动过程的资源初始化,很可能会占用相当多的CPU。

解决方法:
使用perf命令,查找压力大的进程
记录性能事件,等待大约15秒后按Ctrl+C退出

$perf record -g

查看报告

$perf report

 

 





 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!