差異處
這裏顯示兩個版本的差異處。
java:basic:jconsole [2013/03/13 14:33] tony 建立 |
java:basic:jconsole [2017/08/19 23:33] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | {{tag>java}} | + | |
- | ====== JConsole ====== | + | |
- | JConsole是用來觀測java程式佔用資源的工具,我主要用它來看占用的heap memory確認是否有正常回收;看thread是否是無止盡的增加;看cpu使用率是否過重等。基本上與系統上工作管理員或linux top所顯示的會有些出入,因為系統上所統計的是包含JRE自己本身所佔用的資源。\\ | + | |
- | {{:java:basic:jconsole_snapshot.png?600|}}\\ | + | |
- | ===== Java程式啟動參數 ===== | + | |
- | 要使用JConsole功能必須在java程式參數中加入以下四個項目。port即要連線的port;hostname即遠端機器的ip,以前我都沒使用,在某一次遠端連linux上的java程式時發現連不到才開始用它;ssl與authenticate都是為了安全性才會啟用的,目前還沒使用過。 | + | |
- | <code> | + | |
- | -Dcom.sun.management.jmxremote.port=9999 | + | |
- | -Dcom.sun.management.jmxremote.ssl=false | + | |
- | -Dcom.sun.management.jmxremote.authenticate=false | + | |
- | -Djava.rmi.server.hostname=10.134.15.131 | + | |
- | </code> | + | |
- | ===== 連線 ===== | + | |
- | 在啟動JRE/JDK bin中的jconsole應用程式後,會看到下面畫面:\\ | + | |
- | {{:java:basic:jconsole_connection.png?400|}}\\ | + | |
- | 分為Local與Remote連線兩種。 | + | |
- | - Local: 直接選擇對應的java process連接。 | + | |
- | - Remote: 目前我僅用過ip:port的連線方式。以我上述的例子來說,就是使用10.134.15.131:9999連線。 | + | |
- | \\ | + | |
- | 有其它的東西會再繼續補充給大家。\\ | + | |
- | \\ | + | |
- | \\ | + | |
- | 友藏內心獨白: 客官阿~這Heap Memory怎和工作管理員上的差那麼多阿! | + | |
- | ===== Reference ===== | + | |
- | * [[http://docs.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html|Using jconsole]] | + | |
- | ===== ===== | + | |
- | ---- | + | |
- | \\ | + | |
- | ~~DISQUS~~ | + |