1)jps命令java
功能介绍:linux
jps是用来查看JVM里面全部进程的具体状态,包括进程ID,进程启动的路径等等。与unix上的ps相似,用来显示本地java进程,能够查看本地运行着几个java程序,并显示他们的进程号。注意是显示当前用户有访问权限的进程。数据库
2)jconsolejvm
功能介绍:ide
jconsole是基于java Management Extensions(JMX)的实时图形检测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时的性能和资源监控,包括了java程序的内存使用,Heap size,线程的状态,类的份配状态和空间使用等等。工具
3)jinfo(仅linux有)性能
功能介绍:命令行
jinfo能够从core文件里面知道奔溃的java应用程序的配置信息,目前只有在Solaris和Linux的JDK版本里面才有。观察运行中的java程序运行环境参数:参数包括java System属性和JVM命令行参数线程
范例unix
jinfo 2159
其中25159就是java进程id号,能够用前面的jps命令获得这个id号。
4)jstack(仅linux有)
功能介绍:
经过jstack能够观察到jvm中当前全部线程的运行状况和线程当前状态
若是java程序奔溃生成core文件,jstack工具能够用来得到core文件的java stack和native stack的信息,从而能够轻松知道java程序是如何奔溃和在程序何处发生问题。另外,jstack工具还能够附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息,若是如今运行的java程序呈现hung状态,jstack是很是有用的。目前只有在Solaris和linux的jdk版本中才有。
###################################################
最近系统老是每隔一周左右就莫名其妙down掉。因而研究了一下jdk下面几个经常使用的查看
jvm运行时状态的参数,很快找出了问题所在。如今把几个命令记录一下:
1. jstat
这个命令对于查看Jvm的堆栈信息颇有用。可以查看eden,survivor,old,perm等heap的capacity,utility信息
对于查看系统是否是有能存泄漏以及参数设置是否合理有不错的意义
2. jstack
这个是用来查看jvm当前的thread dump的。能够看到当前Jvm里面的线程情况。
这个对于查找blocked线程比较有意义
3. jmap .
这个是用来查看jvm当前的heap dump的。能够看出当前jvm中各类对象的数量,所占空间等等。
尤为值得一提的是这个命令能够处处一份binary heap dump的bin文件,这个文件可以直接用
Eclipse Memory Anayliser来分析,并找出潜在的内存泄漏的地方。
4. 还有一个比较有用的非jvm命令--netstat
经过这个命令能够看到linux系统当前在各个端口的连接状态,好比查看数据库链接数等等