Visual GC提示"不受此JVM支持“Could not create remote object
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.security.AccessController.checkPermission(AccessController.java:884)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:792)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
Could not contact registry,指向的IP地址是一个其他的地址root@localdomain bin# ./jstatd -J-Djava.security.policy=jstatd.all.policy
Could not contact registry
Connection refused to host: y.y.y.y; nested exception is:
java.net.ConnectException: Connection refused
java.rmi.ConnectException: Connection refused to host: y.y.y.y; nested exception is:注意:我在这里查看了远程机器的hosts,发现其配有一些其他的IP,将其删除后能够联通
快速定位导致cpu飙升的线程堆栈信息top 首先通过top命令找到高负载的CPU,获取进程id
top -p <进程id> 精确定位到cpu高的进程,然后按H键,查看该进程所有线程
或者 top -p 进程id -H 查看进程下的线程
printf "%x" 进程id 将进程号转化为16进制,注意把十六进制的大写字母转换为小写
jstack 进程id > xxx.txt 导出日志,然后在日志中查找nid=转换后进程id
或者 jstack 进程ID|grep -A 10 55a0 10表示这个线程所在行后面10行,55a0是进程ID转换后的十六进制