背景
不懂jvm监控工具好意思说自己搞java的吗。其实搞了十多年的人我都见过不懂得,不懂不要紧,老实工作就行啊。这就是属于非技术的话题了,实在不知从何说起。还是赶紧学习下吧,可以去装了。我认真学习后,发现真的就是做大作用是装,问题根本没找到,因为jvm出问题几率小。
jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
工具
jps
:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat
:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap
:打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量)。
jconsole
:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器
jhap
可以分析dump文件的工具
jvisualvm
图形化工具,集合以上功能,不过有欠缺
mat
分析dump文件工具
jstack
通过top命令定位到cpu占用率较高的线程之后,top -Hp pid找到线程id,print ‘%X’获得16进制线程id, 继续使用jstack pid
命令查看当前java进程的堆栈状态,找到线程id状态。