jconsole tomcat記憶體監控設定
Jconsole是JDK自帶的一個很好的jvm檢視工具,免費不用說,而且記憶體狀態重新整理的快,垃圾回收也快。由於,需要監控一個即將上線的web應用是否有記憶體洩露,即需要監控tomcat的jvm記憶體狀況。Jconsole是基於jmx進行通訊、資訊傳送獲取的,因此需要對tomcat進行相應設定,jconsole才可監控tomcat。
1、windows下,通常是我們的開發環境
Windows下,通常是我們的開發環境設定tomcat相關引數,首先反應是修改catalina.bat等檔案,我個人意見這些啟動檔案能不改儘量不改,沒多大好處。幸運的是,我們現在java開發基本上都是基於eclipse或者myeclipse的,因此只要的eclipse或者myeclipse伺服器配置中,設定tomcat伺服器的啟動引數即可。
如myeclipse8.5,windows—>preferencesàmyeclipseàserversàtomcat6,在其JDK optional java vm arguments設定中,輸入下述內容即可:
-Xmx256m -Xms128m -Djava.rmi.server.hostname=192.168.10.101 -Dcom.sun.management.jmxremote.port=8061 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
設定完畢後,在myeclipse中啟動tomcat,我們即可啟動jconsole連線 192.168.0.1:8061進行tomcat的jvm記憶體監控。
2、linux下
現在,大多數生產機的tomcat應用都是部署在linux或者unix機器上,windows上很少,本文以linux為例。
還是基於我剛才的原則,不修改catalina.sh等啟動檔案。我們手工建立一個start檔案,內容如下:
JAVA_HOME=/usr/java/jdk1.6.0_06/ TOMCAT_HOME=/usr/java/apache-tomcat-6.0.16 PATH=$JAVA_HOME/bin:TOMCAT_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH CATALINA_OPTS="-Xmx3072m -Xms3072m -Djava.rmi.server.hostname=192.168.1.101 -Dcom.sun.management.jmxremote.port=8061 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jre/lib/management/jmxremote.password" export CATALINA_OPTS /usr/java/apache-tomcat-6.0.16/bin/startup.sh
將start檔案存放到tomcat bin目錄下,則我們只要以下指令即可啟動tomcat:
at –f /usr/java/apache-tomcat-6.0.16/bin/start now
由於是生產機的設定,因此設定Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jre/lib/management/jmxremote.password,jconsole連線192.168.1.101:8061時需要使用者名稱和口令驗證,確保安全性。
實際上會用到2個檔案,jmxremote.access檔案和jmxremote.password檔案,前者設定使用者,後者設定使用者及對應的口令。這連個檔案在$JAVA_HOME/jre/lib/management都有,我們只要修改其中的使用者和口令即可。
這裡一個需要特別注意的是jmxremote.password訪問許可權一定要設定好,設定成owner可讀即可,否則tomcat啟動失敗,會報類似jmxremote.password resticted錯誤。
相關文章
- Tomcat記憶體設定Tomcat記憶體
- tomcat記憶體溢位問題監控工具Tomcat記憶體溢位
- AIX 記憶體監控AI記憶體
- Solaris記憶體監控記憶體
- 記憶體CPU監控記憶體
- ActiveMQ記憶體設定和流控MQ記憶體
- Jprofiler3+Tomcat5監控記憶體的問題Tomcat記憶體
- iOS微信記憶體監控iOS記憶體
- RabbitMQ - 記憶體磁碟監控MQ記憶體
- Solaris記憶體監控(轉)記憶體
- tomcat設定記憶體大小Tomcat記憶體
- activeMQ JMS JConsole監控MQ
- nagios-新增記憶體監控iOS記憶體
- nagios監控linux主機監控記憶體指令碼iOSLinux記憶體指令碼
- Flutter 上的記憶體洩漏監控Flutter記憶體
- Android 分割槽和記憶體監控Android記憶體
- AIX下記憶體洩漏的監控AI記憶體
- Tomcat記憶體設定從windows服務啟動不生效??Tomcat記憶體Windows
- 監控某程式記憶體佔用異常記憶體
- nagios-建立記憶體監控指令碼iOS記憶體指令碼
- JVM堆記憶體設定JVM記憶體
- tomcat記憶體馬Tomcat記憶體
- [實戰] Flutter 上的記憶體洩漏監控Flutter記憶體
- 雲音樂 Android 記憶體監控探索篇Android記憶體
- SQL Server 2008記憶體效能監控SQLServer記憶體
- Oracle資料庫記憶體監控及意義Oracle資料庫記憶體
- AIX5L記憶體監控和調整AI記憶體
- 設定SQLserver執行記憶體SQLServer記憶體
- JVM 堆記憶體設定原理JVM記憶體
- 架構設計 | 快取管理模式,監控和記憶體回收策略架構快取模式記憶體
- Tomcat修改記憶體配置Tomcat記憶體
- Tomcat增加堆記憶體Tomcat記憶體
- jvm記憶體設定及記憶體溢位、解決方案JVM記憶體溢位
- 阿里開源 java 專案記憶體監控工具 arthas阿里Java記憶體
- Oracle記憶體中的幾個重要監控指標Oracle記憶體指標
- eclipse設定JVM記憶體堆EclipseJVM記憶體
- Oracle:記憶體設定注意事項Oracle記憶體
- eclipse中設定JVM記憶體EclipseJVM記憶體