使用火焰图来分析性能问题
火焰图生成的基本步骤
- 准备火焰图工具
1 | git clone https://github.com/brendangregg/FlameGraph |
- 使用
perf
工具采集性能数据
1 | perf record -F 99 -p $(pgrep nginx) -g -- sleep 60 |
- 生成折叠后的调用栈
1 | perf script -i perf.data &> perf.unfold |
- 将
perf
解析出的内容perf.unfold
中的符号进行折叠
1 | FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded |
- 生成最后的
svg
火焰图
1 | FlameGraph/flamegraph.pl perf.folded > perf.svg |