jconsole远程tomcat进程
修改tomcat/bin/catalina.sh文件,粘贴如下到catalina.sh 文件
JAVA_OPTS="-Djava.rmi.server.hostname=192.168.53.53 -Dcom.sun.management.jmxremote.port=11000 -Dcom.sun.management.jmxremote.rmi.port=11000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
打开jconsole连接tomcat进程,无需输入 用户名/口令
jconsole远程jboss进程(用户名/口令 可以不用填写),查看 内存,线程, 类
在%JBOSS_HOME%\bin\run.sh文件中将 JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME "修改为:
JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME -Dcom.sun.management.jmxremote.port=15080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
jstack -h 查看帮助
jstack是jdk自带的线程跟踪工具,用于打印指定 java进程(如jboss中run.sh配置的15080端口) 的线程堆栈信息 如下pid=15080
jstack -l pid >>jstack.log 用于生成java虚拟机当前时刻的线程快照 (jstack.log 默认就带时间戳)
jmap -h 查看帮助
jmap -histo pid >>jmap.log 打印此刻,堆 内存中所有的对象 和 数量 (jmap.log 默认没带时间戳)
真实应用场景,是写的定时shell脚本,测试人员主要运行脚本, 来定时抓取 快照(包含jstack和jmap),生成一段时间间隔的连续文件