成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

線上排查問題的利器——Btrace

開發(fā) 后端
Btrace 是一個安全,可以動態(tài)跟蹤 java 程序的一種工具。他的操作不會對原有 java 進程產生影響,不用關閉正在運行的 java 進程,也不會修改 java 進程中的邏輯和數(shù)據(jù)。因此,也就成為我們線上跟蹤生產代碼的有力工具!

之前 Btrace 只是聽說過,但還沒有具體的用到。最近在排查線上問題的時候,使用了 Btrace ,發(fā)現(xiàn) Btrace 真是在關鍵時候的利器。

Btrace 是一個安全,可以動態(tài)跟蹤 java 程序的一種工具。

他的操作不會對原有 java 進程產生影響,不用關閉正在運行的 java 進程,也不會修改 java 進程中的邏輯和數(shù)據(jù)。

因此,也就成為我們線上跟蹤生產代碼的有力工具!

Btrace 的腳本編寫也非常簡單:和寫 Java 代碼一樣的,因此對于我們,學習的曲線幾乎是平坦的。

下面就分享一下 Btrace 的一些用法:

如何使用 Btrace

基本用法: trace

其中, btrace 是在 btrace 下載包中的命令 , pid 是 JVM 的進程 id , btrace-script 是編寫的 btrace 腳本。

Btrace 中的一些概念

Probe Point : 關注點。就是我們要關注應用程序中要執(zhí)行的“地方”,或者是一些“事件”的發(fā)生。

Trace Action : 就是觸發(fā)了 probe point 的時候,我們所要執(zhí)行的動作。

Action Methods :我們的 trace action 都是寫在某個類的靜態(tài)方法中的,這個靜態(tài)方法,就是 action method 。

Btrace 中的一些限制:

Btrace 的初衷是要“跟蹤代碼”,而不是修改代碼,因此他要保證我們注入的腳本,是安全的,對應用程序來說是“只讀”的。也就是說不能修改應用程序的代碼或者數(shù)據(jù)。因此 Btrace 中有一些限制,主要有:

不能新建對象

不能拋異常

不能 catch 異常

不能調用實例方法和靜態(tài)方法。只能調用 Btrace 提供的 com.sun.btrace.BTraceUtils 中的方法和自己在腳本中定義的方法。

不能有循環(huán)

不能有斷言

……

初看起來,好像限制蠻多的。不過, com.sun.btrace.BTraceUtils 提供的方法很多,足夠我們來“跟蹤”代碼了。而且,這些限制也是必要的,因為我們只是到那個 JVM 去看看,看看而已。

一個簡單的 Btrace 腳本例子,其實就是 Java 代碼

 

 

其中:

其中類名需要加上 @Btrace 的注釋,以表示是 Btrace 腳本

OnMethod 表示一個 probe point ,這個就表示當執(zhí)行到 java.awt.Component 這個類的 方法(這個是 Component 的構建方法)時,就觸發(fā) func 方法。

@Self 表示這個被實例化的 Component 的引用

@OnTimer 表示事件(通過時間)觸發(fā)的 probe point ,每隔 2 秒觸發(fā)一次

相信程序不用做過多解釋,大家都知道,終端將會打印出從跟蹤開始, Component 被實例化的個數(shù)。

支持的跟蹤類型

Btrace 支持的跟蹤類型有很多了,包括可以跟蹤:

跟蹤到某個實例方法的觸發(fā)

跟蹤到某個接口方法的觸發(fā)

跟蹤到觸發(fā)方法的參數(shù),返回值

可以將當前觸發(fā)的線程堆棧打印出來

設置還可以跟蹤某個方法中的哪一行代碼被執(zhí)行到

Btrace 的 User Guide

http://kenai.com/projects/btrace/pages/UserGuide

關于 Btrace 的原理

詳情可見: http://victorzhzh.javaeye.com/blog/965789

什么時候用 Btrace

雖然 Btrace 在關鍵時候能起到迅速排查問題的作用,但我個人感覺,這還是不到萬不得已才使用的好。

首先,我們代碼上線前,應該充分 review ,充分和相關方進行溝通,以避免不必要的問題發(fā)生。

其次,我們應該養(yǎng)成記 log 的良好習慣。遇到問題,如果有相關日志可以排查,是最方便的,同時,也是最安全,成本***的一種排查方法。

***,我們可以結合 btrace 和 jdk 自帶的 tool 來排查問題,比如 jstack , jstat 等等,快速的定位問題。

以上就是本人剛開始使用 Btrace 的一些成果,希望能對大家排查問題帶來一些作用 。

【編輯推薦】

  1. MyEclipse 8.6 for Spring發(fā)布 新增iPhone工具
  2. MyEclipse 8.6正式版發(fā)布 以Eclipse 3.5.2為核心
  3. MyEclipse 8.6 M1發(fā)布 支持更多服務器
責任編輯:金賀 來源: JavaEye博客
相關推薦

2017-10-12 12:24:50

java

2024-08-14 14:20:00

2017-08-18 22:40:33

線上線程備份

2023-03-02 08:53:57

排查問題效率經(jīng)驗

2021-07-14 13:50:51

Linux命令文件

2020-11-12 10:58:22

Logger級別技巧

2024-10-10 15:32:51

2021-12-26 00:10:39

二分法排查版本

2020-04-28 09:46:34

線上問題排查

2018-08-10 15:00:42

服務器內存排查

2021-11-23 21:21:07

線上排查服務

2017-06-10 20:47:06

MySQL復制線程

2017-06-09 20:10:44

MySQL復制線程

2024-03-18 09:24:00

索引失效SQL

2018-12-10 10:30:40

阿里Linux命令

2022-11-16 11:55:22

網(wǎng)絡連接命令

2023-12-05 07:12:39

優(yōu)化排查性能

2019-11-12 08:53:00

線上命令日志

2010-10-12 10:04:30

無法無線上網(wǎng)

2019-03-29 10:22:08

Linux系統(tǒng)故障技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕亚洲视频 | www国产亚洲精品久久网站 | 亚洲视频免费 | 午夜爽爽男女免费观看hd | 国产精品久久av | 91久久久精品国产一区二区蜜臀 | 羞羞视频免费在线观看 | 亚洲资源在线 | 欧美色综合一区二区三区 | 亚洲精品在线免费观看视频 | 性高湖久久久久久久久aaaaa | 拍真实国产伦偷精品 | 国产成人高清在线观看 | 亚洲午夜av久久乱码 | 97国产精品 | 色综合色综合 | 在线一区二区三区 | 国产精品久久久久久久三级 | 欧美久久天堂 | 亚洲午夜在线 | 婷婷去俺也去 | 国产精品久久久久久久久免费高清 | 天天综合国产 | av免费网址| 久久视频精品 | 在线免费av电影 | 国产日韩欧美精品 | 欧美精品国产一区二区 | 午夜资源| av影音 | 超碰免费在线观看 | 国产精品入口麻豆www | 国产黄色大片在线免费观看 | 美女久久久 | 精品国产一区二区三区久久久蜜月 | 精品久久久久久亚洲综合网 | 精品国产乱码久久久久久丨区2区 | 国产精品久久亚洲7777 | 日韩视频观看 | 日韩一级免费大片 | 国产精品亚洲精品日韩已方 |