• 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
  • 相关阅读:
    KafKa 发消息到Storm
    HBase的优化
    HBase部署与使用
    Scala 类
    Scala高阶函数
    模式匹配
    Scala数据结构
    scala基础语法
    Scala安装配置
    Kafka工作流程分析
  • 原文地址:https://www.cnblogs.com/riches/p/11912516.html
Copyright © 2020-2023  润新知