常用的jvm配置参数 :堆的参数配置

-Xmx  指定最大堆  java虚拟机最多能够使用多少堆空间

-Xms  指定最小堆  至少使用多少空间,只要java虚拟机启动 ,这么多空间就会被占用

常用的jvm配置参数 :堆的参数配置_第1张图片

当申请一个1M的空间后

常用的jvm配置参数 :堆的参数配置_第2张图片

java会尽可能在维持在最小堆中运行

------------------------------------

再去分配4M的空间,就会扩容

常用的jvm配置参数 :堆的参数配置_第3张图片

--------------------------------------------------------------

常用的jvm配置参数 :堆的参数配置_第4张图片

-------------------------------------------------

-Xmn  : 用来设置新生代的大小  绝对值

-XX:NewRatio    设置百分比

             新生代(end+2*s)和 老年代(不包含永久区)的比值

          比如 4  表示新生代:老年代=1:4  

-XX:SurvivorRatio   

         -- 设置两个Survivor 区和eden的比例

         -- 8 表示 两个Survivor:eden=2:8 即一个Survivor占年轻代的1/10

有时候也叫 s0,s1

-------------------------------------

下面是例子

常用的jvm配置参数 :堆的参数配置_第5张图片

------------------------------------------------

调整新生代的大小

常用的jvm配置参数 :堆的参数配置_第6张图片

----------------------------------------------------------------------

调整新生代的大小 处于中间位置的时候 gc发生了


常用的jvm配置参数 :堆的参数配置_第7张图片

-----------------------------------------

调整幸存带的比例 大约1.7m左右   

常用的jvm配置参数 :堆的参数配置_第8张图片

------------------------------------------------

常用的jvm配置参数 :堆的参数配置_第9张图片

GC 越多理论上来说 对系统越不好

---------------------------------

幸存代比较大浪费空间比较严重,这里合理减少幸存带的大小

常用的jvm配置参数 :堆的参数配置_第10张图片

合理较少了幸存带的大小,幸存带减小到2M,gc的次数减少了,没有机会晋升到老年代

----------------------------------------

常用的jvm配置参数 :堆的参数配置_第11张图片

-XX:HeapDumpPath 代表dump的路径

-XX:HeapDumpOutOfMemoryError    表示out of memory 进行dump

dump的大小基本上和堆保持一致的

------------------------------------------

dump 打印线程的信息

常用的jvm配置参数 :堆的参数配置_第12张图片

------------------------------------

常用的jvm配置参数 :堆的参数配置_第13张图片






你可能感兴趣的:(JVM,杂章)