[資訊] 火焰圖

性能調優利器--火焰圖

火焰圖(Flame Graph)是由 Linux 性能優化大師 Brendan Gregg 發明的,和所有其他的 profiling 方法不同的是,火焰圖以一個全域的視野來看待時間分佈,它從底部往頂部,列出所有可能導致性能瓶頸的調用棧。

火焰圖有以下特徵(這裡以 on-cpu 火焰圖為例):

•每一列代表一個調用棧,每一個格子代表一個函數;
•縱軸展示了棧的深度,按照調用關係從下到上排列,最頂上格子代表採樣時,正在佔用 cpu 的函數;
•橫軸的意義是指:火焰圖將採集的多個調用棧資訊,通過按字母橫向排序的方式將眾多資訊聚合在一起。需要注意的是它並不代表時間;
•橫軸格子的寬度代表其在採樣中出現頻率,所以一個格子的寬度越大,說明它是瓶頸原因的可能性就越大;
•火焰圖格子的顏色是隨機的暖色調,方便區分各個調用資訊;
•其他的採樣方式也可以使用火焰圖, on-cpu 火焰圖橫軸是指 cpu 佔用時間,off-cpu 火焰圖橫軸則代表阻塞時間;
•採樣可以是單執行緒、多執行緒、多進程甚至是多 host,進階用法可以參考附錄進階閱讀;


#火焰圖

留言