成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在OR項(xiàng)目中使用火焰圖

RobinQu / 1396人閱讀

摘要:火焰圖介紹看到里用火焰圖覺得挺有意思的,又裝逼又有用。今天在自己以前的項(xiàng)目中測試了下,下面貼個(gè)圖留個(gè)紀(jì)念。火焰圖安裝參考安裝其實(shí)主要就是安裝內(nèi)核探測工具。

火焰圖介紹

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

這里面不要看顏色,因?yàn)轭伾请S機(jī)搞來的,沒有任何意義。要看火焰山上縱向的高度和每個(gè)對應(yīng)的長度??v向的高度代表函數(shù)調(diào)用棧的深度,橫向長度代表此函數(shù)執(zhí)行占用CPU的比例。

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

火焰圖安裝

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

安裝systemtap

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

    1. yum install yum-utils
    2. yum install kernel-devel
    3. debuginfo-install kernel
    4. yum install systemtap

第三步安裝失敗的話,使用內(nèi)核版本號找到對應(yīng)的包進(jìn)行安裝就好了。
完成后輸入以下命令進(jìn)行測試

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

如果安裝成功則是這樣

下載 openresty-systemtap-toolkit

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

下載 FlameGraph

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

使用示例

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

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

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

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

fix-lua-bt temp.bt > a.bt 

4.使用下面兩個(gè)FlameGraph中的命令將文件轉(zhuǎn)化為svg圖片

stackcollapse-stap.pl a.bt > a.cbt
flamegraph.pl a.cbt > a.svg

然后打開a.svg就可以看到火焰圖了

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39561.html

相關(guān)文章

  • idea 啟用火焰功能

    摘要:開源項(xiàng)目是一個(gè)的低開銷采樣分析器,可以生成火焰圖。集成了它的功能,使用起來更加的簡單。開啟火焰圖按下快捷鍵選擇勾選這就開啟了火焰圖功能。啟動(dòng)程序隨便寫一點(diǎn)代碼使用下圖中紅色標(biāo)注的方式啟動(dòng)火焰圖黃色的部分是調(diào)用棧,其他的則是系統(tǒng)調(diào)用。 開源項(xiàng)目 async-profiler 是一個(gè)Java 的低開銷采樣分析器,可以生成火焰圖。idea集成了它的功能,使用起來更加的簡單。 開啟火焰圖 按...

    W_BinaryTree 評論0 收藏0
  • 基本性能分析,省了幾百萬美元

    摘要:本文是關(guān)于我如何應(yīng)用基本性能分析技術(shù),借助火焰圖做了一處小改進(jìn),使得我們計(jì)算機(jī)集群的狀況獲得了倍的改善,并在第二年幫助節(jié)省了幾百萬刀。最終,通過對平均大小在的事件進(jìn)行批量插入,我們的吞吐量獲得了的提高。 本文是關(guān)于我如何應(yīng)用基本性能分析技術(shù),借助火焰圖做了一處小改進(jìn),使得我們 Postgres 計(jì)算機(jī)集群的 CPU 狀況獲得了 10 倍的改善,并在第二年幫助 Heap 節(jié)省了幾百萬刀。針對用...

    張憲坤 評論0 收藏0
  • [譯]保持Node.js的速度-創(chuàng)建高性能Node.js Servers的工具、技術(shù)和提示

    摘要:本文翻譯自原文地址中文標(biāo)題保持的速度創(chuàng)建高性能的工具技術(shù)和提示快速摘要是一個(gè)非常多彩的平臺,而創(chuàng)建服務(wù)就是其非常重要的能力之一。在目錄下,我們執(zhí)行譯者注現(xiàn)在的話可以使用新的形式的命令語法會在剖析完畢后,創(chuàng)建文件并自動(dòng)打開瀏覽器。 pre-tips 本文翻譯自: Keeping Node.js Fast: Tools, Techniques, And Tips For Making Hi...

    Lavender 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<