美文网首页linux 性能调优专题
2、红帽性能调优——火焰图使用perf生成火焰图

2、红帽性能调优——火焰图使用perf生成火焰图

作者: abeb6ca9bb86 | 来源:发表于2017-02-26 10:49 被阅读329次

    火焰图就像是给一个软件系统拍的 X 光照片,可以很自然地把时间和空间两个维度上的信息融合在一张图上,以非常直观的形式展现出来,从而反映系统在性能方面的很多定量的统计规律。

    最经典的火焰图是统计某一个软件的所有代码路径在 CPU 上面的时间分布。

    通过看火焰图,也可以大致推出性能问题的所在,即使从未阅读过它的一行源码。这是一件非常了不起的事情。因为大部分程序其实是编写良好的,也就是说它往往在软件构造的时候就使用了抽象层次,比如通过函数。这些函数的名称通常会包含语义上的信息,并在火焰图上面直接显示出来。通过这些函数名,我们可以大致推测出对应的函数,乃至对应的某一条代码路径,大致是做什么事情的,从而推断出这个程序所存在的性能问题。

    使用火焰图

    if [ $# -ne 1 ];then

    echo "Usage: $0 seconds"

    exit 1

    fi

    perf record -a -g -o perf.data &

    PID=`ps aux| grep "perf record"| grep -v grep| awk '{print $2}'`

    if [ -n "$PID" ]; then

    sleep $1

    kill -s INT $PID

    fi

    # wait until perf exite

    sleep 1

    perf script -i perf.data &> perf.unfold

    perl stackcollapse-perf.pl perf.unfold &> perf.folded

    perl flamegraph.pl perf.folded >perf.svg

    关于perf使用查看如下:

    《红帽性能调优——perf使用》

    参考:

    http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html

    CentOS下载地址

    http://isoredirect.centos.org/centos/7.3.1611/isos/x86_64/

    flamegraph下载地址

    https://github.com/brendangregg/FlameGraph

    相关文章

      网友评论

        本文标题:2、红帽性能调优——火焰图使用perf生成火焰图

        本文链接:https://www.haomeiwen.com/subject/hbrowttx.html