摘要:火焰圖介紹看到里用火焰圖覺得挺有意思的,又裝逼又有用。今天在自己以前的項目中測試了下,下面貼個圖留個紀念。火焰圖安裝參考安裝其實主要就是安裝內核探測工具。
火焰圖介紹
看到openresty里用火焰圖覺得挺有意思的,又裝逼又有用。它可以快速的定位到程序性能的瓶頸,生成程序的調用棧并且計算調用棧中每部分的 CPU 消耗,能夠比較容易的找到CPU占用高、內存泄漏等問題。今天在自己以前的項目中測試了下,下面貼個圖留個紀念。
這里面不要看顏色,因為顏色是隨機搞來的,沒有任何意義。要看火焰山上縱向的高度和每個對應的長度。縱向的高度代表函數調用棧的深度,橫向長度代表此函數執行占用CPU的比例。
下面來了解下火焰圖工具如何安裝。
火焰圖安裝參考 http://kernelmaker.github.io/...
安裝systemtap其實主要就是安裝內核探測工具 systemtap。(SystemTap 通過將腳本語句翻譯成C語句,編譯成內核模塊。模塊加載之后,依據時間處理機制來收集有關正在運行的Linux系統的信息)
1. yum install yum-utils 2. yum install kernel-devel 3. debuginfo-install kernel 4. yum install systemtap
第三步安裝失敗的話,使用內核版本號找到對應的包進行安裝就好了。
完成后輸入以下命令進行測試
stap -ve "probe begin { log("hello world") exit() }"
如果安裝成功則是這樣
要知道systemtap只是個內核探測工具,不只是可以用在openresty中的,你得自己寫好腳本來進行埋點等工作。但是春哥已經在 openresty-systemtap-toolkit 中提供了許多可以直接使用的腳本,我們直接拿過來用就好了,畢竟我自己是不會寫的。
下載 FlameGraph使用上面openresty-systemtap-toolkit這些腳本后,我們其實已經可以拿到我們所需要的信息了,只是還是不夠直觀,所以我們得用FlameGraph火焰圖生成工具來生成直觀的圖片。
使用示例1.找到我們要監控的nginx的某個進程
ps -ef | grep nginx
2.ngx-sample-lua-bt 抓取棧信息(這個工具可以看到在某個文件對應行函數的情況)
此處我是把上面下載的openresty-systemtap-toolkit和FlameGraph加到環境變量里面去了。所以直接輸入命令就行了
ngx-sample-lua-bt -p 19075 --luajit20 -t 5 > temp.bt
3.使用fix-lua-bt把上面得到的文件轉化更友好點(直接看到對應的lua函數)
fix-lua-bt temp.bt > a.bt
4.使用下面兩個FlameGraph中的命令將文件轉化為svg圖片
stackcollapse-stap.pl a.bt > a.cbt flamegraph.pl a.cbt > a.svg
然后打開a.svg就可以看到火焰圖了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39561.html
摘要:開源項目是一個的低開銷采樣分析器,可以生成火焰圖。集成了它的功能,使用起來更加的簡單。開啟火焰圖按下快捷鍵選擇勾選這就開啟了火焰圖功能。啟動程序隨便寫一點代碼使用下圖中紅色標注的方式啟動火焰圖黃色的部分是調用棧,其他的則是系統調用。 開源項目 async-profiler 是一個Java 的低開銷采樣分析器,可以生成火焰圖。idea集成了它的功能,使用起來更加的簡單。 開啟火焰圖 按...
摘要:本文是關于我如何應用基本性能分析技術,借助火焰圖做了一處小改進,使得我們計算機集群的狀況獲得了倍的改善,并在第二年幫助節省了幾百萬刀。最終,通過對平均大小在的事件進行批量插入,我們的吞吐量獲得了的提高。 本文是關于我如何應用基本性能分析技術,借助火焰圖做了一處小改進,使得我們 Postgres 計算機集群的 CPU 狀況獲得了 10 倍的改善,并在第二年幫助 Heap 節省了幾百萬刀。針對用...
摘要:本文翻譯自原文地址中文標題保持的速度創建高性能的工具技術和提示快速摘要是一個非常多彩的平臺,而創建服務就是其非常重要的能力之一。在目錄下,我們執行譯者注現在的話可以使用新的形式的命令語法會在剖析完畢后,創建文件并自動打開瀏覽器。 pre-tips 本文翻譯自: Keeping Node.js Fast: Tools, Techniques, And Tips For Making Hi...
閱讀 3917·2021-11-24 09:38
閱讀 3088·2021-11-17 09:33
閱讀 3863·2021-11-10 11:48
閱讀 1234·2021-10-14 09:48
閱讀 3123·2019-08-30 13:14
閱讀 2543·2019-08-29 18:37
閱讀 3386·2019-08-29 12:38
閱讀 1410·2019-08-29 12:30