关注火焰图非常长的时间了!~~一直未能自己做个火焰图出来。今天小试一把。
ubuntu18.04
ssh登陆之后执行命令
安装软件
apt-get install -y linux-cloud-tools-generic linux-tools-generic
访问https://github.com/brendangregg/FlameGraph
download zip然后解压完传到ubuntu18.04的/root/
然后找个程序执行(我拿iperf用来做性能测试的对象,你可以用dd或者ping命令测试下)
ps -ef | grep iperf
看到进程为18061
然后执行
perf record -F 99 -p 18061 -g -- sleep 30
上面命令的参数为监控频率为1秒钟监控99次,监控进程为18061,监控时长为30秒
# report是文本显示例子,看细节挺方便
perf report -n --stdio
# perf script一条条打印perf.data内的数据,输出的是perf record收集到的原始数据。
perf script -i perf.data &> perf.unfold
/root/flamegraph-master/stackcollapse-perf.pl perf.unfold &> perf.folded
/root/flamegraph-master/flamegraph.pl perf.folded > perf.svg
perf script | /root/flamegraph-master/stackcollapse-perf.pl | /root/flamegraph-master/flamegraph.pl >process.svg
然后把svg复制到你的电脑用浏览器打开看下吧!
我的是这个样子的
可以看到copy_user_generic_string和finish_task_switch是平顶山,找到问题原因了,解决问题那就是另外一回事了!
更详细的中文参考http://www.qingpingshan.com/pc/fwq/172560.html
这么好的文章浏览量居然之后203!!!!
还有一个linux performance大神的网站http://www.brendangregg.com,基本上google上搜索到的linux性能优化的文章、视频都引用了他的软件或者图片。