日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在OR项目中使用火焰图

發(fā)布時間:2025/5/22 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在OR项目中使用火焰图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

火焰圖介紹

看到openresty里用火焰圖覺得挺有意思的,又裝逼又有用。它可以快速的定位到程序性能的瓶頸,生成程序的調用棧并且計算調用棧中每部分的 CPU 消耗,能夠比較容易的找到CPU占用高、內存泄漏等問題。今天在自己以前的項目中測試了下,下面貼個圖留個紀念。

這里面不要看顏色,因為顏色是隨機搞來的,沒有任何意義。要看火焰山上縱向的高度和每個對應的長度。縱向的高度代表函數(shù)調用棧的深度,橫向長度代表此函數(shù)執(zhí)行占用CPU的比例。

下面來了解下火焰圖工具如何安裝。

火焰圖安裝

參考 http://kernelmaker.github.io/...

安裝systemtap

其實主要就是安裝內核探測工具 systemtap。(SystemTap 通過將腳本語句翻譯成C語句,編譯成內核模塊。模塊加載之后,依據(jù)時間處理機制來收集有關正在運行的Linux系統(tǒng)的信息)

1. yum install yum-utils2. yum install kernel-devel3. debuginfo-install kernel4. yum install systemtap

第三步安裝失敗的話,使用內核版本號找到對應的包進行安裝就好了。
完成后輸入以下命令進行測試

stap -ve 'probe begin { log("hello world") exit() }'

如果安裝成功則是這樣

下載 openresty-systemtap-toolkit

要知道systemtap只是個內核探測工具,不只是可以用在openresty中的,你得自己寫好腳本來進行埋點等工作。但是春哥已經(jīng)在 openresty-systemtap-toolkit 中提供了許多可以直接使用的腳本,我們直接拿過來用就好了,畢竟我自己是不會寫的。

下載 FlameGraph

使用上面openresty-systemtap-toolkit這些腳本后,我們其實已經(jīng)可以拿到我們所需要的信息了,只是還是不夠直觀,所以我們得用FlameGraph火焰圖生成工具來生成直觀的圖片。

使用示例

1.找到我們要監(jiān)控的nginx的某個進程
ps -ef | grep nginx

2.ngx-sample-lua-bt 抓取棧信息(這個工具可以看到在某個文件對應行函數(shù)的情況)
此處我是把上面下載的openresty-systemtap-toolkit和FlameGraph加到環(huán)境變量里面去了。所以直接輸入命令就行了

ngx-sample-lua-bt -p 19075 --luajit20 -t 5 > temp.bt

3.使用fix-lua-bt把上面得到的文件轉化更友好點(直接看到對應的lua函數(shù))

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就可以看到火焰圖了

總結

以上是生活随笔為你收集整理的在OR项目中使用火焰图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。