JVM配置参数解析

  1.参数说明(部分,待完善)

    -Xms128M:JVM初始分配的堆内存

    -Xmx256M:JVM最大允许分配的堆内存,按需分配

    -XX:PermSize=64M: JVM初始分配的非堆内存

    -XX:MaxPerSize=128M:JVM最大允许分配的非堆内存,按需分配          

    2.堆内存分配(-Xms -Xmx)

          JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。

               默认空余堆小于40%时,JVM就会增大堆直到-Xmx的最大限制;

       空余堆大于70%时,JVM就会减少堆直到-Xms的最小限制;

       介于此情况,通常服务器设置-Xms -Xmx相等,以避免每次GC后调整堆的大小

          注意:若-Xms不指定数值或者数值偏小,系统可能会抛出java.lang.OutOfMemory错误,此错误来源于JVM,不可捕获。

   3.非堆内存分配(-XX:PermSize -XX:MaxPermSize)

       JVM初始分配的堆内存由-XX:PermSize指定,默认是物理内存的1/64;最大分配的堆内存由-XX:MaxPerSize指定,默认是物理内存的1/4。

               注意:-XX:MaxPermSize设置过小会导致内存溢出java.lang.OutOfMemoryError: PermGen space。

               导致此情况出现的原因:

       (1)该区域存储class和Meta信息,类加载时放入PermGen space区域,和实例对象存储的Heap区域不同。

                       (2)GC不会在主程序运行时对PermGen space进行清理

    主要出现在web服务器对jsp预编译的时候。

                                                     --------------------------------菜鸟整理,如有错误,欢迎指出!

                  

猜你喜欢

转载自www.cnblogs.com/kaizhengMan/p/10948409.html