<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評論-33  文章-0  trackbacks-0

         除了Dtrace與Java技術的集成之外,Java SE 6發行中還包含了許多其它的可觀察性工具。下面總結了這些工具,其中還包含一些更為詳細的鏈接說明。

    (一) JConsole

    JConsole使用JVM的可擴展性Java管理擴展(JMX)工具來提供關于運行于Java平臺的應用程序的性能和資源消耗的信息。

    在J2SE 5.0軟件中,你需要啟動使用-Dcom.sun.management.jmxremote選項監控的應用程序。注意:在Java SE 6軟件中,不再有這一要求。當啟動該應用程序時,不需要特定的命令行選項。

    在生產系統中的應用

    JConsole啟動一個在被觀察的Java程序的JVM內部的JMX代理。運行另外一部分代碼僅有一點極微弱的影響-但是影響很小。

    另外,盡管JConsole在監視本地應用程序的開發和快速原型開發中很有用,但在實際的應用系統中不推薦使用。理由是,JConsole本身也消耗大 量的系統資源。我們推薦的方法是用遠程監控來把JConsole應用程序與被監控的系統加以隔離。因此,對于應用系統來說,以遠程模式使用 JConsole更好些。對于安全的遠程監控來說,可以使用安全選項。

    (二) jps

    jps相當于Solaris進程工具ps。更多的信息,請參考《jps-Java Virtual Machine Process Status Tool》。

    不象"pgrep java"或"ps -ef grep java",jps并不使用應用程序名來查找JVM實例。因此,它查找所有的Java應用程序,包括即使沒有使用java執行體的那種(例如,定制的啟動 器)。另外,jps僅查找當前用戶的Java進程,而不是當前系統中的所有進程。

    (三) jstat

    jstat 顯示一個測量(instrumented)Java HotSpot虛擬機的性能統計信息(請參考《jstat-Java Virtual Machine Statistics Monitoring Tool》)。有關于性能計數器的更詳細的信息請參考《Code sample-jvmstat 3.0》。

    (四) jstatd

    jstatd是一個Java遠程方法調用 (RMI)服務器應用程序-它監控測量Java HotSpot虛擬機的創建和終止并且提供一個接口來允許遠程監控工具依附到運行于本地主機的JVM(請參考《jstatd-Virtual Machine jstat Daemon》)。

    在應用系統中的使用

    jps及其它jvmstat實用程序都使用 極為輕量級的觀察機制。由JVM分配一小部分共享內存,而性能計數器也是從這部分內存中分配的。JVM子系統基于其感興趣的事件更新性能計數器。客戶端工 具僅僅負責異步地從共享內存段中進行讀取。因此,總的來說,使用jvmstat進行監控的效果是很小的。 Photoshop教程 數據結構 五筆輸入法專題



    Java SE 6平臺中針對于Postmortem的可觀察性工具

    Java SE 6支持postmortem可觀察性工具-它能夠從掛起的Java進程或Java核心復制中獲得信息。這些工具(除了jhat外)都使用Solaris libproc庫來依附到和讀取被觀察的程序。在觀察期間,目標程序被掛起。當Java進程被掛起或當從一個Java進程中發生一個核心復制時,可以使用 這些工具。在任何可能的情況下,請考慮使用gcore來捕獲系統的核心復制的一個快照并且使用任何下列工具"離線"分析核心復制。

    (一) jinfo

    jinfo打印一個給定的Java進程或核心文件或一個遠程調試服務器的Java配置信息。配置信息包括Java系統屬性和JVM命令行標志(更多信息,請參考《jinfo-Configuration Info》)。

    (二) jmap

    jmap:如果這個工具不使用任何選項(除了pid或core選項)運行,那么它顯示類似于Solaris的pmap工具所輸出的信息。這個工具支持針對Java堆可觀察性的若干其它選項。

    在Java SE 6平臺中,新加入了一個-dump選項。這樣可以使jmap能夠把Java堆信息復制到一個文件中,然后我們可以使用新的jhat命令(見下面一節)來分析它。

    jmap -dump選項并不使用Solaris libproc來實現實時處理;而是,它運行當前正運行的JVM中的一小段代碼,由此來實現堆復制。既然這種堆復制代碼運行于JVM內部,那么其速度是比 較快的。堆復制的效果大致相當于實現一次"完全的GC"(對整個堆的垃圾收集),再加上把該堆的內容寫入到文件中。實現堆復制的另外一種可能的思路是使用 gcore來進行核心復制并且運行"jmap -dump"(這與以"離線"方式運行的核心復制形成對照)。

    (三) jstack

    jstack等價于Solaris的pstack工具。jstack打印所有的Java線程的堆棧跟蹤信息(可選地包括本機幀信息),請參考《jstack-堆棧跟蹤》。關于鎖和死鎖的信息也可以被打印,請參考java.util.concurrent locks。

    (四) jsadebugd

    jsadebugd依附到一個Java進程或核心文件并且擔當一個調試服務器的作用。遠程客戶,例如jstack、jmap和jinfo,都能夠通過Java RMI依附到該服務器。

    (五) jhat

    jhat是一個Java堆復制瀏覽器。這個工具分析Java堆復制文件(例如,由上面的"jmap -dump"所產生的)。Jhat啟動一個允許堆中的對象在web瀏覽器中進行分析的web服務器。這個工具并不是想用于應用系統中而是用于"離線"分 析。"jhat工具是平臺獨立的",其意思是,它可以被用來觀察在任何平臺上所產生的堆復制。例如,我們有可能在Linux系統上使用jhat來觀察一個 在Solaris OS上所產生的堆復制。

    把本機的java內存映像導出到heap.dmp中,其中PID為java進程的ID號。
    jmap -dump:live,format=b,file=heap.dmp PID

    導出后的映像文件可以用jhat來進行分析,-J是向java虛擬機傳一個參數,如-mx768m是指定虛擬機可用最大的內存為768M。如果映像文件很大,你要指定一個很大的值,否則在分析過程中就會有OutOfMemeryError的錯誤。
    jhat -J-mx768m -port <端口號:默認為7000> heap.dmp

    posted on 2010-04-08 14:04 Derek.Guo 閱讀(574) 評論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 亚洲精品高清国产麻豆专区| 黑人大战亚洲人精品一区| 亚洲成年人电影网站| 精品国产免费一区二区三区香蕉| 国产日产亚洲系列| 国产免费久久久久久无码| 亚洲七七久久精品中文国产| 青青青视频免费观看| 亚洲成a人片在线观看国产| 蜜芽亚洲av无码一区二区三区| 成年大片免费视频| 亚洲精品无码av中文字幕| 四虎www免费人成| 在线观看亚洲精品专区| 亚洲国产精品国产自在在线| 九九九精品视频免费| 亚洲精品美女久久久久99| 麻豆国产入口在线观看免费| 亚洲国产欧美国产综合一区| 内射无码专区久久亚洲| 大妹子影视剧在线观看全集免费| 国产亚洲成av片在线观看| 亚洲毛片在线免费观看| 亚洲熟女综合一区二区三区| 免费一区二区三区四区五区| 爽爽爽爽爽爽爽成人免费观看| 国产成在线观看免费视频| 亚洲精品无码中文久久字幕| 免费一级国产生活片| 99精品免费视频| 亚洲一区二区三区无码国产 | 91精品国产免费久久国语蜜臀 | 免费在线观看黄色毛片| 97无码人妻福利免费公开在线视频| 亚洲尹人九九大色香蕉网站| 四虎在线视频免费观看| 大地资源在线资源免费观看 | 亚洲日韩在线第一页| 无码国产精品一区二区免费式芒果 | 中文字幕在线免费播放| 亚洲人xxx日本人18|