jps
[root@tomcat2 bin]# pwd
/usr/java/jdk/bin
//显示运行的所有java进程
[root@tomcat2 bin]# jps
7514 Jps #jps也是java开发的,所以这里会显示出来
jps (java virtual machine process status tool)监控ivm进程状态信息,可以理解为列出所有的java进程的pid号。
jps [options] [hostid]
-
-m:输出传入main方法的参数
-
-l:显示main类或jar的完全限定名称
-
-v:显示为jvm虚拟机指定的参数,这一个挺有用,可以显示出分配的空间
[root@tomcat2 bin]# pwd
/usr/java/jdk/bin
[root@tomcat2 bin]# jps -m
8379 Jps -m
[root@tomcat2 bin]# jps -l
8391 sun.tools.jps.Jps
[root@tomcat2 bin]# jps -l -v
8403 sun.tools.jps.Jps -Dapplication.home=/usr/java/jdk -Xms8m
jstack
查看某个java进程内线程内的堆栈信息,通过jps命令列出java进程,然后通过jstack去查看进程的堆栈信息。
//显示堆线的信息,会显示的非常详细
jstack PID
这些信息我们运维看不太懂,一些我们是在调优或排错的时候将输出信息交给程序员分析。
选项:
-
-l 1ong listings:输出完成的锁信息:
-
-m:混合模式,即.
在排错或调优时只可以通过jstack查看到底是哪段代码产生了锁导致了问题。
通常会这样的情况,我们通过top观察到一个java进程特别消耗cpu,我们可以将其pid取出来,然后通过jstack来观察查看是哪段代码比较异常。
jmap
jmap:jvm memroy map,查看堆内存使用情况
//查看堆内存使用情况
jmap PID
//详细查看堆内存使用情况,会把堆当中的新生代、老年代、持久代信息显示出来,比较有用
jmap -heap PID
//详细显示堆空间的对象
jmap -histo:live PID
jstat
jvm的统计监测工具
//查看垃圾回收器的相关信息
jstat -gc PID
-
字段意义:s0C, SIC, Sou, S1U: C表示容量, U表示已用量,0和1指的就是from和to
-
EC, EU: eden区域的容量和已用量
-
oc, ou:老年代的信息
-
PC, PU:持久代的信息
-
YGC, YGT:新生代的GC次数和耗时
-
FGC, FGCT: FULL GC的次数和耗时
-
GCT: GC.总耗时