<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 如何定位問題 一個正常的火焰圖,應該呈現出如[官網](http://openresty.org/download/user-flamegraph.svg)給出的樣例(官網的火焰圖是抓C級別函數):![正常](https://box.kancloud.cn/2015-08-11_55c9ff5840c23.png) 從上圖可以看出,正常業務下的火焰圖形狀類似的“山脈”,“山脈”的“海拔”表示worker中業務函數的調用深度,“山脈”的“長度”表示worker中業務函數占用cpu的比例。 下面將用一個實際應用中遇到問題抽象出來的示例(CPU占用過高)來說明如何通過火焰圖定位問題。 問題表現,nginx worker運行一段時間后出現CPU占用100%的情況,reload后一段時間后復現,當出現CPU占用率高情況的時候是某個worker 占用率高。 問題分析,單worker cpu高的情況一定是某個input中包含的信息不能被lua函數以正確地方式處理導致的,因此上火焰圖找出具體的函數,抓取的過程需要抓取C級別的函數和lua級別的函數,抓取相同的時間,兩張圖一起分析才能得到準確的結果。 抓取步驟: 1. [安裝SystemTap](#); 1. 獲取CPU異常的worker的進程ID; > ps -ef | grep nginx 1. 使用[ngx-sample-lua-bt](https://github.com/openresty/nginx-systemtap-toolkit)抓取棧信息,并用fix-lua-bt工具處理; > ./ngx-sample-lua-bt -p 9768 --luajit20 -t 5 > tmp.bt ./fix-lua-bt tmp.bt > a.bt 1. 使用[stackcollapse-stap.pl和](https://github.com/brendangregg/FlameGraph); > ./stackcollapse-stap.pl a.bt > a.cbt ./flamegraph.pl a.cbt > a.svg 1. a.svg即是火焰圖,拖入瀏覽器即可: ![problem](https://box.kancloud.cn/2015-08-11_55c9ff58cfe36.png) 1. 從上圖可以清楚的看到get_serial_id這個函數占用了絕大部分的CPU比例,問題的排查可以從這里入手,找到其調用棧中異常的函數。 ps:一般來說一個正常的火焰圖看起來像一座座連綿起伏的“山峰”,而一個異常的火焰圖看起來像一座“平頂山”。
                  <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>

                              哎呀哎呀视频在线观看