JVM调优

调优命令

Sun JDK 监控和故障处理命令 jps jstat jmap jhat jstack jinfo

  • jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
  • jstat:JVM statistic Monitoring 是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据
  • jmap:JVM Memory Map命令用于生成 heap dump 文件
  • jhat:JVM Heap Analysis Tool 命令是与 jmap 搭配使用,用来分析 jmap 生成的 dump,jhat 内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看
  • jstack:用于生成java虚拟机当前时刻的线程快照
  • jinfo:JVM Configuration info 这个命令作用是实时查看和调整虚拟机运行参数

调优工具

常用的调优工具分为两类,JDK自带监控工具:jconsole和jvisualvm,第三方有:MAT (Memory Analyzer Tool),GChisto。

  • jconsole:Java Monitoring and Management Console 是从Java5 开始,在JDK中自带的Java监控和管理控制台,用于对JVM中内存,线程和类等的监控
  • jvisualvm,JDK自带全能工具,可以分析内存快照,线程快照;监控内存变化,GC变化等
  • MAT:Memory Analyzer Tool,一个基于Eclipse的内存分析工具,是一个快速,功能丰富的Java heap 分析工具,它可以帮助我们查找内存泄露和减少内存消耗
  • GChisto:一款专业分析GC 日志的工具

JVM 性能调优

  • 设定堆内存大小
-Xmx:堆内存最大限制
  • 设定新生代大小。新生代不宜太小,否则会有大量对象涌入老年代
-XX:NewSize:新生代大小
-XX:NewRatio 新生代和老年代的占比
-XX:SurvivorRatio:伊甸园空间和幸存者空间的占比
  • 设定垃圾回收器
    年轻代用 -XX:+UseParNewGC
    老年代用 -XX:+UserConcMarkSweepGC

你可能感兴趣的:(JVM,JVM调优,JVM,调优)