zoukankan      html  css  js  c++  java
  • JVM基础

    一、目的

    通过对线上jvm常见故障的用例的分析,提高大家对系统故障的分析和处理能力,减少系统由故障造成的宕机时间,提高系统的可用性。

    二、JVM概况

    jvm为java虚拟机的简称,在这里一般指Oralce旗下的Hotspot,在处理故障前首先必须了解JVM相关基础知识。在此简单介绍如下。

    1.1.1     虚拟机的基本结构

    JVM内存基本结构如下

    各部分功能详细在此不重复描述,请自行百度或查阅相关书籍。

    1.1.2     垃圾回收

    回收算法、垃圾回收器与堆内存分配的相关参数

    回收算法

    1、Mark-Sweep(标记-清除)算法

    2、Copying(复制)算法

    3、Mark-Compact(标记-整理)算法

    4、Generational Collection(分代收集)算法

    以上算法具体过程及适用场景请自行百度或参考相关书籍。

    垃圾回收器

    1、Serial收集器

    2、ParNew收集器

    3、Parallel Scavenge收集器

    4、Serial Old收集器

    5、Parallel Old收集器

    6、CMS收集器

    7、G1收集器

    以上垃圾回收器详细信息请自行百度或参考相关书籍。

    堆内存分配参数

    Jvm堆内存分配的几个重要参数,对应设置的内存区域,如图所示

    配置参数

    功能

    -Xms

    初始堆大小。如:-Xms256m

    -Xmx

    最大堆大小。如:-Xmx512m

    -Xmn

    新生代大小。通常为 Xmx 的 1/3 或 1/4。新生代 = Eden + 2 个 Survivor 空间。实际可用空间为 = Eden + 1 个 Survivor,即 90%

    -Xss

    JDK1.5+ 每个线程堆栈大小为 1M,一般来说如果栈不是很深的话, 1M 是绝对够用了的。

    -XX:NewRatio

    新生代与老年代的比例,如 –XX:NewRatio=2,则新生代占整个堆空间的1/3,老年代占2/3

    -XX:SurvivorRatio

    新生代中 Eden 与 Survivor 的比值。默认值为 8。即 Eden 占新生代空间的 8/10,另外两个 Survivor 各占 1/10

    -XX:PermSize

    永久代(方法区)的初始大小

    -XX:MaxPermSize

    永久代(方法区)的最大值

    -XX:+PrintGCDetails

    打印 GC 信息

    -XX:+HeapDumpOnOutOfMemoryError

    让虚拟机在发生内存溢出时 Dump 出当前的内存堆转储快照,以便分析用

    -Xloggc

     

    -XX:+PrintGCDateStamps 

     

    -XX:+PrintGCApplicationStoppedTime 

     
       

    -Djava.rmi.server.hostname

     

    -Dcom.sun.management.jmxremote

     

    -Dcom.sun.management.jmxremote.port

     

    -Dcom.sun.management.jmxremote.ssl

     

    -Dcom.sun.management.jmxremote.authenticate

     
       
  • 相关阅读:
    Maven安装教程详解
    eclipse配置apache tomcat运行时访问路径不需要项目名称
    Spring MVC Captcha 验证码
    Vue混入的详解
    Eclipse上传项目到Git
    mysql 8.0.11 中使用 grant ... identified by 时 error 1064 near 'identified by '密码'' at line 1
    转 js自定义事件——Event和CustomEvent
    tp隐藏入口文件
    php发送邮件
    【项目练习】控制器直接操作--登录
  • 原文地址:https://www.cnblogs.com/ken-jl/p/8998518.html
Copyright © 2011-2022 走看看