因火焰图而只见树木不见森林

主要观点:

  • 最好在 1920x1080 或更高分辨率的桌面设备上查看此帖子。
  • 火焰图是可视化软件性能的神奇工具,Brendan Gregg 创造了它们,但有一个需注意的点,即会很好地隐藏总体影响较大的小开销。
  • 以读取数据库文档并以 JSON 响应返回的常见 CRUD 操作的 Web 工作者为例,理论上消除所有开销可将速度提高 2 倍,但逐个检查和消除开销效率低。
  • 要看到这些开销,需自下而上合并堆栈,可使用--reverse标志生成不同视图,如flamegraph.pl --reverse raw_input.txt > reversed.svg,发现应在 Redis 调用上花费时间,可使用客户端缓存消除 80%工作。
  • 火焰图通常与采样分析器一起使用,采样分析器能可靠识别较高调用栈的工作,但在较低调用栈时可靠性下降,可通过增加采样率、使用跟踪分析器或手动检查火焰顶部来解决此问题,且这些火焰图在现代浏览器中是交互的,可在原始自上而下的火焰图中搜索“redis”。

关键信息:

  • 火焰图工具及创建者 Brendan Gregg。
  • 某 Web 工作者的火焰图示例及各部分含义。
  • 消除开销的方法及效率。
  • 自下而上合并堆栈生成不同视图的方法。
  • 采样分析器的局限性及解决办法。

重要细节:

  • 提及py-spy工具及可获取原始数据生成图形。
  • 提到增加采样率、使用跟踪分析器、手动检查火焰顶部等解决采样分析器局限性的方式。
  • 强调火焰图在现代浏览器中可交互及可搜索特定内容。
阅读 10
0 条评论