JVM系列(七)jdk工具介绍、监控等

  安装java的时候一般会安装JDK而不是JRE。其中一个原因就是JDK/bin目录下附送很多的工具,有助于定位java相关问题。

  • visualVM

  非常好的工具!可以看到分代内存的使用情况、线程的CPU使用率、类的内存使用情况。基本上做性能测试必须这个软件的。另外,安装visual gc插件后可以看到垃圾回收的情况,强烈建议安装visual gc插件。

内存情况:

线程情况:

 

安装visual gc插件后的情况:

   不过,这个工具很多时候都只会在研发、测试环境上运行。生成环境是不会跑这个工具的。因为一、跑这个工具很耗费CPU、内存;其次,这个工具只在windows平台上跑,linux上只会通过jmap命令得知内存情况(很多时候通过ssh登录,怎么会有这么漂亮的界面咧)。

  • jar

man这个命令说明:combines multiple files into a single JAR archive file。很多时候都用编译器打包的了。写脚本时候可能用到,其他很多时间用不上。。。

  • jarsigner

Signs and verifies Java Archive (JAR) files  基本上也不用的。。。

  • java

运行.class文件需要用到这个工具。这个工具有很多参数, 部分必须了解。

-classpath   :增加一些依赖文件的路径

调内存

参数
说明
例子
-Xss
stack的最大大小
-Xss128K
-Xms
heap的初始化size
 
-Xmx
heap的最大size
-Xmx16M
-Xmn
年轻代(survivor*2 + eden)的大小
 
-XX:PermSize
p区的初始化size
 
-XX:MaxPermSize
p区的最大size
-XX:MaxPermSize=10M
-XX:MaxDirectMemorySize
direct memory最大值
-XX:MaxDirectMemorySize=10M

调gc策略

参数
说明
例子
-XX:+UseConcMarkSweepGC
使用cms垃圾收集器
 
‑XX:+CMSClassUnloadingEnabled
cms 回收perm区
 

记录coredump

-XX:-HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/Javin/Desktop/oom_dump.hprof

  • javac
  • javadoc
  • javah
  • javap
  • jcmd
  • jconsole
  • jdb
  • jexec
  • jhat
  • jinfo
  • jmap
  • jps
  • jrunscript
  • jsadebugd
  • jstack
  • jstat
  • jstatd
原文地址:https://www.cnblogs.com/ELMND/p/4740572.html