The jps command lists the instrumented Java HotSpot VMs on the target system.The command is limited to reporting information on JVMs for which it has theaccess permissions.
查看Java进程
我的服务器上发布了我的web项目使用命令
jsp -l
也可以直接使用jps
无参数:显示进程的ID和类的名称 -q:仅显示进程ID -m:输出传入 main 方法的参数 -l:输出java进程全路径,比如应用程序主类完整package名称或jar完整名称 -v:输出jvm参数,比如堆大小,此命令方便我们查看JVM大小,不用去找配置文件 -V:输出通过flag文件(.hotsportrc或-XX:Flags=filename)传递到JVM中的参数
另外,也可以使用ps -ef|grep java
来查看java进程
The jinfo command prints Java configuration information for a specified Javaprocess or core file or a remote debug server. The configuration informationincludes Java system properties and Java Virtual Machine (JVM) command-lineflags.
实时查看和调整JVM配置参数
jinfo -flag name PID
查看某个java进程的name属性的值,
继续使用上面的pid
jinfo -flag UseG1GC PID
查看当前使用的是不是G1垃圾收集器
-XX:-UseG1GC
表示不是使用G1作为垃圾收集器。
参数只有被标记为manageable的flags可以被实时修改。
jinfo -flag [+|-] PIDjinfo -flag = PID
(4)查看曾经赋过值的一些参数
jinfo -flags PID
The jstat command displays performance statistics for an instrumented JavaHotSpot VM. The target JVM is identified by its virtual machine identifier, orvmid option.
查看虚拟机性能统计信息
jstat -class PID 1000 10
查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次
查看垃圾收集信息
jstat -gc PID 1000 10
The jstack command prints Java stack traces of Java threads for a specified Javaprocess, core file, or remote debug server.
查看线程堆栈信息
jstack PID
可以通过此命令来排查死锁的问题。
代码如下:
public class MyLock {
public static Object object1=new Object();
public static Object object2=new Object();
}
public class DeadLockTest {
public static void main(String[] args) {
DeadLock deadLock1=new DeadLock(true);
DeadLock deadLock2=new DeadLock(false);
Thread thread1=new Thread(deadLock1);
Thread thread2=new Thread(deadLock2);
thread1.start();
thread2.start();
}
}
运行结果:
把打印信息拉到最后可以发现
提示发现死锁。
The jmap command prints shared object memory maps or heap memory details of aspecified process, core file, or remote debug server.
生成堆转储快照,打印出堆内存相关信息。
-XX:+PrintFlagsFinal -Xms300M -Xmx300M
设置JVM参数使用jmap -heap PID
dump出堆内存相关信息,
使用jmap -dump:format=b,file=heap.hprof PID
要是在发生堆内存溢出的时候,能自动dump出该文件就好了。
一般在开发中,JVM参数可以加上下面两句,
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof
这样内存溢出时,会自动dump出该文件。
关于dump文件的分析后面再细说,今天就分享到这里。