jialisoftw

          Btrace在性能測試中的使用

          在測試環境安裝btrace,可以用于排查接口調用的時間,分析測試點的瓶頸。以下簡單介紹安裝和使用。

          1.      安裝:btrace是一個開源代碼軟件,下載安裝的地址在:http://kenai.com/projects/btrace/downloads/directory/releases/release-1.2.1,下載得到tar.gz包,在應用服務器上使用sudo–u admin –H rz命令上傳tar.gz包,如果使用該命令時傳輸失敗,比如傳輸不完全等,則使用sudo –u admin –H rz –be命令(為什么要用admin賬號的權限是因為我們啟動應用用的賬號都是admin,如果用root賬號創建的文件,admin賬號啟動的應用可能沒有權限訪問該文件)。上傳完成后解壓,tar zvxf xxx.tar.gz,解壓后會看到:bin、build、docs、samples等目錄,bin目錄下是windows的啟動bat腳本和linux啟動的shell腳本,build下面是btrace源碼打出來的jar包,docs目錄下是btrace的使用文檔,samples目錄下是一些btrace腳本的例子。安裝完成。如果要查看btrace的源代碼,需要先安裝版本控制工具Mercurial客戶端,btrace的源代碼使用Mercurial管理,地址在:http://mercurial.selenic.com/。下載時如果報如下錯誤:abort:hg.kenai.com certificate error: certificate is for kenai.com(configurehostfingerprint 9c:f6:c3:1f:14:bc:98:82:de:2a:5b:6e:d2:ce:61:5d:95:e1:65:a5 oruse --insecure to connect insecurely)。則可以改用hg clone--insecurehttps://hg.kenai.com/hg/btrace~hg命令來下載。

          2.      使用:編寫btrace腳本,通常我們需要編寫的腳本是打點某個方法的調用時間,一個例子如下: 


           寫好了腳本之后,同樣用rz命令上傳到btrace/bin目錄下。執行之前需要知道當前需要監控的代碼所在java進程的進程id,可以使用sudo jps或者ps –ef| grep java兩個命令獲取,得到進程id后,執行:sudo –u admin –H sh btrace 9926 CTest.java,當應用執行com.taobao.department.web.module.control.BrandsellFloorList的execute方法并返回后,會打印出諸如“floor execute Time taken ms 100”的語句,從而能夠非常直觀得看到方法調用的時間,通過多幾個時間打點,我們很容易得能排查得出接口中調用時間比較長得異常代碼塊。

          3.      想法:通過排查應用中接口代碼的調用時間分布來排查性能瓶頸是日常性能測試中最常用的方式,這種方式到目前為止經歷了幾種方式的演變:應用中日志打點,輸出時間---àBtrace腳本。相比于日志打點,btrace腳本有著明顯的優勢:動態、方便并且能給那些我們無法修改源代碼的第三方jar包增加打點,但是,我們始終還是要寫btrace腳本,如果有多個方法需要監控,腳本數量會比較大。使用btrace開發的原理,我們可以把動態時間打點以工具的形式提供出來。類似以下的功能:在工具上選擇遠程的進程,輸入進程中的接口名和方法名,選擇打點,然后得到該接口調用時間的實時曲線圖表,這看起來就美妙多了。

          posted on 2012-10-29 09:31 飛豬一號 閱讀(1687) 評論(1)  編輯  收藏

          評論

          # re: Btrace在性能測試中的使用 2012-10-30 15:51 隱形透視眼鏡

          挺有意思的呀嘿嘿  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統計

          常用鏈接

          留言簿

          隨筆檔案

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 平和县| 东港市| 颍上县| 芦山县| 贺兰县| 百色市| 宜兴市| 盐亭县| 新竹市| 多伦县| 惠来县| 贵州省| 宝坻区| 苏尼特右旗| 昌吉市| 乾安县| 呼和浩特市| 清流县| 博爱县| 桐柏县| 新泰市| 通州市| 密云县| 阿克苏市| 兴仁县| 永泰县| 长顺县| 泰安市| 图木舒克市| 巴林左旗| 汽车| 全南县| 定西市| 洛宁县| 乐业县| 永登县| 景宁| 邢台县| 德清县| 赣州市| 乐陵市|