查看JAVA进程中哪个线程CPU消耗最高_JAVA本地远程连接linux程序
查看JAVA进程中哪个线程CPU消耗最高_JAVA本地远程连接linux程序监控状态
转载:http://www.cnblogs.com/tankaixiong/p/5995759.html转载:http://www.cnblogs.com/tankaixiong/p/5984023.html
查看JAVA进程中哪个线程CPU消耗最高
一,在centos linux 上查看进程占用cpu过高top shift+h查看哪个进程程消耗最高
二,查看JAVA进程中哪个线程消耗最高 2.1 导出java运行的线程信息 jstack 进程id(jps查看)jstack 进程id > ps.txtjstack -l 进程id (窗口打印) //另外还有一种方式 如果启动方式如下:nohup java -classpath conf/:my.jar com.tank.manClass>./log.out 2>&1 & 则执行: kill -3 PID,进程信息会输出到/log.out2.2 查找最消耗cpu的java线程 jps找到java进程PID命令:ps -mp pid-o THREAD,tid,time 或者 ps -Lfp pid通过%CPU和 TIME,判断占用的线程TID 找到TID,转换成16进制,然后在上面(jstack 进程id > ps.txt)导出的文件中搜索,就可以定位到具体的线程,类。
JAVA本地远程连接linux程序监控状态环境: 1.本地window2.程序部署在centos
一,启动访问权限安全守护程序新建文件:jstatd.all.policy ,注意路径grant codebase "$JAVA_HOME/lib/tools.jar" { permission java.security.AllPermission; };
启动:screen jstatd -J-Djava.security.policy=jstatd.all.policy
二,JAVA启动参数设置JAVA_OPTS='-Dcom.sun.management.jmxremote.port=5656 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'
注:-Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要确定这个端口没有被占用
-Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl
-Dcom.sun.management.jmxremote.authenticate=false 指定了JMX 是否启用鉴权(需要用户名,密码鉴权)2,3两个是固定配置,是 JMX 的远程服务权限的
三,可能遇到的问题
3.1 如果遇到无法远程连接问题。
查看 hostname -i
hostname对应的IP是不是远程连接的IP地址,如果不是则查看 cat /etc/host 添加ip 对本机对外IP的映射
查看JAVA进程中哪个线程CPU消耗最高_JAVA本地远程连接linux程序相关教程