前段时间Linux下用nmon监控程序的运行,发现CPU的使用率很高,系统态Sys的比例很高。程序的速度不是很快,怀疑和上面的原因有关。
分别使用perf record,perf report和top -H -p,pstack分析发现。2种可能性,跳表skiplist和内存大量分配回收时lru回收,都会用到spin lock自旋锁,导致CPU Sys的使用率很高。
最后替换了跳表skiplist,CPU Sys的使用率很高的问题得以解决。
perf工具是Linux自带的性能分析工具,常用的命令:
perf -list
perf -stat
perf -top
perf -record
perf -report
perf -record -g -p 20100采集 一段时间数据后,使用 perf -record分析刚才采集的数据。20100是希望监控进程的pid。
perf -record的结果,回车查看详细信息,方向键的左键←可以返回上一级菜单。
原文:http://www.cnblogs.com/lnlvinso/p/7242306.html