zoukankan      html  css  js  c++  java
  • JVM学习笔记四:虚拟机性能监控与故障处理工具

    JVM client模式和Server模式的区别

    JVM client模式和Server模式启动,分别针对桌面应用和服务器应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但运行起来较快。
    Java HotSpot虚拟机默认不带参数启动会首先检测主机是否为服务器,如果是,则以Server模式启动,否则以client模式启动,而检测的根据是至少2个CPU和最低2GB内存。

    虚拟机模式切换

    如果只是临时切换,可以直接使用命令行执行,格式如:java -模式(client或server) classname

    如果永久切换可以修改配置文件,配置文件在“JAVA_HOME/jre/lib/i386/jvm.cfg”,我们可以看到JVM默认的顺序:

    1. -client KNOWN
    2. -server KNOWN
    3. -hotspot ALIASED_TO -client
    4. -classic WARN
    5. -native ERROR
    6. -green ERROR

    只需要把-server和-clent调换顺序即可

    1. -server KNOWN
    2. -client KNOWN
    3. -hotspot ALIASED_TO -client
    4. -classic WARN
    5. -native ERROR
    6. -green ERROR

    JVM工作在Server模式可以大大提高性能,但应用的启动会比client模式慢大概10%。当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。

    默认Java堆大小 (即Xms和Xmx默认值)

    hotspot虚拟机的默认堆大小如果未指定,他们是根据服务器物理内存计算而来的

    client模式下,JVM初始和最大堆大小为:

    在物理内存达到192MB之前,JVM最大堆大小为物理内存的一半,否则,在物理内存大于192MB,在到达1GB之前,JVM最大堆大小为物理内存的1/4,大于1GB的物理内存也按1GB计算,举个例子,如果你的电脑内存是128MB,那么最大堆大小就是64MB,如果你的物理内存大于或等于1GB,那么最大堆大小为256MB。

    Java初始堆大小是物理内存的1/64,但最小是8MB。

    server模式下:

    与client模式类似,区别就是默认值可以更大,比如在32位JVM下,如果物理内存在4G或更高,最大堆大小可以提升至1GB,,如果是在64位JVM下,如果物理内存在128GB或更高,最大堆大小可以提升至32GB。

    jdk 命令行工具

    jps 虚拟机进程状况工具 jps -l -v -l 输出主类的全名 -v 输出虚拟机启动参数 -m 输出main函数的参数;

    jstat 虚拟机统计信息监视工具 jstat -gcutil 2764
    jinjiprojectnaotu
    jinfo java配置信息工具

    jinfo -flag MaxHeapSize 6950 打印VMID为6950的JVM进程的大Java堆大小

    jinfo -flag InitialHeapSize 6950 打印VMID为6950的JVM进程的初始化Java堆大小

    jinfo -flags 6950 打印VMID为6950的JVM进程的VM参数

    jmap Java内存映像工具
    jinjiprojectnaotu
    例如,用jmap生成一个dump快照的命令为:

    jmap -dump:format=b,file=dumpfile.bin 3500

    jhat 启动web显示dump分析页面

    jstack Java栈跟踪工具

    jack -l 显示堆栈信息

    hsdls jit生成代码反汇编

    参考资料

    本文参考:《深入理解Java虚拟机》

  • 相关阅读:
    Fitness
    【数据分析师 Level 1 】10.数据采集方法
    【数据分析师 Level 1 】9.MySQL简介
    【数据分析师 Level 1 】8.数据库简介
    【数据分析师 Level 1 】7.机器学习的基本概念
    【数据分析师 Level 1 】6.一元线性回归
    【数据分析师 Level 1 】5.方差分析
    【数据分析师 Level 1 】4.假设检验
    【数据分析师 Level 1 】3.抽样分布及参数估计
    【数据分析师 Level 1】2.描述性统计分析
  • 原文地址:https://www.cnblogs.com/MinnieChang/p/7296062.html
Copyright © 2011-2022 走看看