JVM配置监控 JMX 端口通,无法连接解决方案
问题:
其他机器配置了jvm 监控都能连上,唯独两台始终连不上
故障排查:
- 端口可以通 telnet ip port 正常连接
- 使用
VisualVm
工具无法正常连接
解决方案:
- 命令行执行
hostname -i
看下是否返回我们服务器的IP
初次返回的IP 是 181 导致 jar 进程都找不到
- 如果上面的IP 不是我们得机器IP ,调整
sudo vim /etc/hosts
我们主机名是bankadapter02
对应之前的IP 之前是192.1.11.181 bankadapter02
修改之后192.1.11.186 bankadapter02
- 上面修改完毕,重启java 服务,使用VM 工具连接正常
JVM 配置
JVM_OPTS="-server -Xmx6g -XX:+UseG1GC -XX:MaxGCPauseMillis=300 -XX:+HeapDumpOnOutOfMemoryError"
JMX_GC_OPTS="-XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:logs/185-gc.`date '+%F_%H%M'`.log"
JMX_VM_OPTS="-Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
nohup java -Dloader.path="./lib" -Duser.timezone=GMT+08 -Djasypt.encryptor.password=jllriskpwd -jar $DEBUG_OPTS $JVM_OPTS $JMX_GC_OPTS $JMX_VM_OPTS $JAR_FILE $SPRING_PORT >> $APP_LOG/system.out 2>&1 &
配置完毕,重启对应的服务即可连接 10090 端口
如有疑问,欢迎留言
排查问题过程中发现之前的 GC 回收机制也有问题,配置的1g 75% 回收,导致的现象就是 接口很有规律的 几十个快的,后面同样的接口最长要5秒才返回, 修改垃圾回收方式 用 -XX:+UseG1GC -XX:MaxGCPauseMillis=300
解决问题
-Xmx6g
最大回收范围我们设置的内存的2/3 左右
本作品采用《CC 协议》,转载必须注明作者和本文链接