<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 如何安裝火焰圖生成工具 #### 安裝SystemTap > 環境 CentOS 6.5 2.6.32-504.23.4.el6.x86_64 SystemTap是一個診斷Linux系統性能或功能問題的開源軟件,為了診斷系統問題或性能,開發者或調試人員只需要寫一些腳本,然后通過SystemTap提供的命令行接口就可以對正在運行的內核進行診斷調試。 首先需要安裝內核開發包和調試包(這一步非常重要并且最為繁瑣): ~~~ # #Installaion: # rpm -ivh kernel-debuginfo-($version).rpm # rpm -ivh kernel-debuginfo-common-($version).rpm # rpm -ivh kernel-devel-($version).rpm ~~~ 其中$version使用linux命令 uname -r 查看,需要保證內核版本和上述開發包版本一致才能使用systemtap。([下載](http://debuginfo.centos.org)) 安裝systemtap: ~~~ # yum install systemtap # ... # 測試systemtap安裝成功否: # stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}' Pass 1: parsed user script and 103 library script(s) using 201628virt/29508res/3144shr/26860data kb, in 10usr/190sys/219real ms. Pass 2: analyzed script: 1 probe(s), 1 function(s), 3 embed(s), 0 global(s) using 296120virt/124876res/4120shr/121352data kb, in 660usr/1020sys/1889real ms. Pass 3: translated to C into "/tmp/stapffFP7E/stap_82c0f95e47d351a956e1587c4dd4cee1_1459_src.c" using 296120virt/125204res/4448shr/121352data kb, in 10usr/50sys/56real ms. Pass 4: compiled C into "stap_82c0f95e47d351a956e1587c4dd4cee1_1459.ko" in 620usr/620sys/1379real ms. Pass 5: starting run. read performed Pass 5: run completed in 20usr/30sys/354real ms. ~~~ 如果出現如上輸出表示安裝成功。 #### 火焰圖繪制 首先,需要下載ngx工具包:[Github地址](https://github.com/openresty/nginx-systemtap-toolkit),該工具包即是用perl生成stap探測腳本并運行的腳本,如果是要抓lua級別的情況,請使用工具 ngx-sample-lua-bt ~~~ # ps -ef | grep nginx (ps:得到類似這樣的輸出,其中15010即使worker進程的pid,后面需要用到) hippo 14857 1 0 Jul01 ? 00:00:00 nginx: master process /opt/openresty/nginx/sbin/nginx -p /home/hippo/skylar_server_code/nginx/main_server/ -c conf/nginx.conf hippo 15010 14857 0 Jul01 ? 00:00:12 nginx: worker process # ./ngx-sample-lua-bt -p 15010 --luajit20 -t 5 > tmp.bt (-p 是要抓的進程的pid --luajit20|--luajit51 是luajit的版本 -t是探測的時間,單位是秒, 探測結果輸出到tmp.bt) # ./fix-lua-bt tmp.bt > flame.bt (處理ngx-sample-lua-bt的輸出,使其可讀性更佳) ~~~ 其次,下載Flame-Graphic生成包:[Github地址](https://github.com/brendangregg/FlameGraph),該工具包中包含多個火焰圖生成工具,其中,stackcollapse-stap.pl才是為SystemTap抓取的棧信息的生成工具 ~~~ # stackcollapse-stap.pl flame.bt > flame.cbt # flamegraph.pl flame.cbt > flame.svg ~~~ 如果一切正常,那么會生成flame.svg,這便是火焰圖,用瀏覽器打開即可。 #### 問題回顧 在整個安裝部署過程中,遇到的最大問題便是內核開發包和調試信息包的安裝,找不到和內核版本對應的,好不容易找到了又不能下載,@!¥#@……%@#,于是升級了內核,在后面的過程便沒遇到什么問題。ps:如果在執行ngx-sample-lua-bt的時間周期內(上面的命令是5秒),抓取的worker沒有任何業務在跑,那么生成的火焰圖便沒有業務內容,不要驚訝哦~~~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看