jconsole远程监控
java -Djava.rmi.server.hostname=192.168.5.132 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=11111 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Xms100M -Xmx100M -XX:+PrintGC FullGCTest
192.168.5.132:11111
jvisualvm远程连接
参考资料链接:https://www.cnblogs.com/liugh/p/7620336.html
在$JAVA_HOME/bin/下新建策略文件:
touch jstatd.all.policy
vi jstatd.all.policy
输入如下内容:
grant codebase “file:/usr/local/soft/jdk1.8.0_181/lib/tools.jar” {
permission java.security.AllPermission;
};
启动jstatd:
./jstatd -J-Djava.security.policy=./jstatd.all.policy
192.168.5.132:11111
java -Xms100M -Xmx100M -XX:+PrintGC FullGCTest
top
top -Hp 6906
死锁用 jstack
jstack 6906
2. 系统CPU经常100%,如何调优?
CPU100%那么一定有线程在占用系统资源,
- 找出哪个进程cpu高(top)
- 该进程中的哪个线程cpu高(top -Hp)
- 导出该线程的堆栈 (jstack)
- 查找哪个方法(栈帧)消耗时间 (jstack)
- 工作线程占比高 | 垃圾回收线程占比高
3. 系统内存飙高,如何查找问题?
- 导出堆内存 (jmap)
- 分析 (jhat jvisualvm mat jprofiler … )