工作上,經常要對tomcat的java內存配置、tomcat線程池等進行調(luan)優(gao)。
jconsole 是一個最基礎用到的jdk自帶的JVM性能查看工具。
最近進行linux測試。 所以需要配置 jconsole的遠程訪問服務。網上找了好幾個文章,才調試好。記錄下經過。
---------------------------------------------------------------------------
第一版, 增加JAVA_OPTS :
if [ "$1" = "start" ] ; then#判斷是否為啟動
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.217.128"
fi
其中,ssl=false表示不使用ssl;authenticate=false表示不需要認證,即不需要用戶名、密碼,如果該參數為true,則還需要其他用戶名、密碼的相關參數。
需要注意的是,這幾個參數在使用時要連在一起,實際使用過程中發現,如果這幾個參數中間有夾雜其他的JVM參數,則可能無法開啟JMX的遠程訪問。
在cygwin=false前面加入這段話
authenticate為false,jconsole連接遠程jvm時,就不需要輸入用戶名和密碼。
否則,要配置密碼文件和密碼。
可以指定密碼文件的位置
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.pwd.file=/root/soft/jdk7/jre/lib/management/jmxremote.password"
#設置密碼的話,除了上面的參數配置,還有搞下密碼文件
cp jmxremote.password.template jmxremote.password
#授權可寫入,然后將 文件的最后兩行的注釋去掉。最后兩行即為 【用戶名 密碼】
chmod u+w jmxremote.password
測試結果: 第一版:因為 JAVA_OPTS 還有其他內存參數配置,導致 jmx端口沒有啟動。
即:用 netstat -an |grep 10000 查不到端口監聽信息。
-----------------------------------------------
第二版:修改CATALINA_OPTS 》》OK.
即:進入Tomcat/bin目錄,修改catalina.sh,找到如下內容“#—–Execute The Requested Command”,在其上添加以下配置,此配置不需要用戶名、密碼。
CATALINA_OPTS=”$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.23.1
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false”
注意是一行。 然后測試還可以。
參考: https://blog.csdn.net/dongdong2980/article/details/78476393