一、性能监控与诊断

1、JVM监控

目前企业级应用系统的开发多数会使用Java语言,并且使用Oracle J2EE(收购Sun后的)架构。Java程序运行在HotSpot VM(就是我们常说的JVM,也包括OpenJDK)之上,通过对JVM的监控,我们可以度量Java程序效率,分析程序性能问题。

对于JVM的监控,并不需要我们借助第三方工具,JDK自带的监控命令就已经很强大,这些工具随JDK一起发布,随时可以用它们监控JVM,而且这些工具也比较好用,下面讲解几个常用的监控命令和一个可视化监控工具(JvisualVM)。

对于Java的应用来讲,JVM的性能反映了Java程序的性能。JVM的监控分两大类:一是堆内存,二是线程;从堆内存可以分析大对象与内存溢出等问题,从线程状态及线程信息可以分析出低效程序,解决的是CPU资源占用的问题。

1.jps

我们要知道机器上运行的JVM进程号可以由jps得到。jps命令返回当前系统中的Java进程号。

jps命令的参数说明如下:

  • l:返回Java进程全路径。
  • q:仅显示进程ID。
  • v:返回JVM参数,例如堆大小,此命令方便我们查看JVM大小,不用去找配置文件。

jps [ip]:列出远程机器上的Java进程信息,