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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

FlameScope 更高级全面的火焰图

發布時間:2023/11/27 生活经验 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FlameScope 更高级全面的火焰图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FlameScope 更高級全面的火焰圖

文章目錄

    • FlameScope 更高級全面的火焰圖
      • 安裝步驟
      • 安裝問題fix
    • 使用方式

網飛(Netflix)開發的火焰圖工具能夠更好得呈現出一段時間內的服務器on/off cpu 的熱力圖。

安裝步驟

$ git clone https://github.com/Netflix/flamescope
$ cd flamescope
$ pip install -r requirements.txt
$ python3 run.py

如果安裝成功,運行到最后一步會輸出如下,flamescope會啟動一個httpserver:

 $ python3.9 run.py                                              * Serving Flask app "app" (lazy loading)* Environment: productionWARNING: Do not use the development server in a production environment.Use a production WSGI server instead.* Debug mode: on* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)* Restarting with stat* Debugger is active!* Debugger PIN: 888-173-631

如果某一步失敗,一般是第三步和第四步 會出現python相關的錯誤,可以參考如下錯誤的解決辦法。

安裝問題fix

  1. ImportError: cannot import name ‘Feature’ from ‘setuptools’

    因為python3中的setuptools 版本默認升級到了46及以上,但是Feature 接口已經在46及以上的setuptools版本中移除了,所以使用會有問題

    如果想要python3運行時使用Feature這個模塊,需要安裝小于46版本的setuptools

    pip install --upgrade pip setuptools==45.2.0
    即可解決

  2. ImportError: failed to find libmagic.
    libmagic 版本過高,python3運行時找不到對應的動態庫

    降低這個版本的庫即可:

    pip uninstall python-magic
    pip install python-magic-bin==0.4.14
    
  3. TypeError: required field “type_ignores” missing from Module

    /usr/local/lib/python3.9/site-packages/werkzeug/routing.py代碼中要求一些函數運行必須攜帶參數

    # 將改行代碼更換成如下即可,為函數ast.Module增加一個空參數
    # module = ast.fix_missing_locations(ast.Module([func_ast],[]))
    module = ast.fix_missing_locations(ast.Module([func_ast]))
    code = compile(module, "<werkzeug routing>", "exec")globs, locs = {}, {}
    exec(code, globs, locs)return locs[func_ast.name]
    

    接下來即可啟動flame graph 的httpserver了python3 run.py

使用方式

flamescope的介紹以及使用 官方也給了兩個視頻,而基本火焰圖的查看這里不再多說,從底向上是函數層級的調用占用CPU的比例。

FlameScope Introduction

FlameScope Examples

安裝完成,并運行python3 run.py成功之后,會成功啟動一個flamescope的httpserver。

如果沒有配置flamescope/app/config.py文件中的ip和端口號,則可以通過http://127.0.0.1:5000訪問examples中的熱力圖。

點開一個perf數據

可以看到如上熱力圖,其中橫軸是時間,總共采樣了60s,每一個縱軸代表一秒內的1000ms cpu占用情況,可以看到單縱軸小方格內顏色越深的小方格,表示這段時間內的cpu消耗較多。
通過這個圖能夠非常清晰得看到一段時間內CPU的消耗情況,具體哪一部分消耗較多,可以選擇對應區域的小方格看到這段區域的火焰圖數據,非常直觀。

如果想要看自己抓的熱力圖,可以通過perf命令采樣自己應用進程的oncpu數據,flamescope會在當前文件自動識別到perf的結果數據:

$ sudo perf record -F 49 -p <pid> -g -- sleep 120
$ sudo perf script --header > stacks.oncpu

如果安裝了bcc工具集,通過offcpu命令抓取offcpu的火焰圖,同樣能夠看到offcpu的數據:

offcputime -df -p <pid> 60 > stacks.offcpu

總結

以上是生活随笔為你收集整理的FlameScope 更高级全面的火焰图的全部內容,希望文章能夠幫你解決所遇到的問題。

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