JPS
列出pid和java完整主类名,以下为命令以及结果。
jps -l
4472 sun.tools.jps.Jps
4456 org.apache.catalina.startup.Bootstrap
列出pid和jvm参数,以下为命令以及结果
jps -v
4592 Jps -Denv.class.path=.:/home/fxf/java/jdk1.8.0_161/lib:/home/fxf/java/jdk1.8.0_161/jre/lib: -Dapplication.home=/home/fxf/java/jdk1.8.0_161 -Xms8m
4576 Bootstrap -Djava.util.logging.config.file=/home/fxf/java/apache-tomcat-7.0.90/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.rmi.server.hostname=192.168.199.128 -Dcom.sun.management.jmxremote.port=9315 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -Dcatalina.base=/home/fxf/java/apache-tomcat-7.0.90 -Dcatalina.home=/home/fxf/java/apache-tomcat-7.0.90 -Djava.io.tmpdir=/home/fxf/java/apache-tomcat-7.0.90/temp
fxf@ubuntu:~/java/apache-tomcat-7.0
JSTACK
检测cpu占用高的代码
步骤1:top命令查询,占用cpu高的java进程pid;
步骤2:top -H -p pid 找到cpu占用高的线程id;
步骤3:print "%x\n" 线程id,将线程id转为16进制;
步骤4:jstack pid|grep 16进制线程id -A 30,输出对应执行代码。