JVM学习(四)JVM调优

一、调优命令

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

  • jps,JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。
  • jstat,JVM statistics 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日志的工具

三、Minor GC与Full GC分别在什么时候发生?

  新生代内存不够用时候发生MGC也叫YGC,JVM内存不够的时候发生FGC

四、你知道哪些JVM性能调优

设定堆内存大小

  -Xmx:堆内存最大限制。

设定新生代大小

  新生代不宜太小,否则会有大量对象涌入老年代

  • -XX:NewSize:新生代大小
  • -XX:NewRatio:新生代和老生代占比
  • -XX:SurvivorRatio:伊甸园空间和幸存者空间的占比

设定垃圾回收器

  • 年轻代用 -XX:+UseParNewGC
  • 年老代用 -XX:+UseConcMarkSweepGC

猜你喜欢

转载自www.cnblogs.com/riches/p/11912516.html
今日推荐