JVM常用基础参数-元空间MetaspaceSize讲解

JVM常用基础参数-元空间MetaspaceSize讲解

大厂面试题:

1、JVM垃圾回收时候如何确定垃圾?是否知道什么是GC Roots

2、你说你做过JVM参数调优和参数配置,请问如何盘点查看JVM系统默认值

3、你平时工作中用过的JVM常用基本配置参数有哪些?

4、强引用、软引用、弱引用、虚引用费别是什么?

5、请你谈谈对OOM的认识

6、GC垃圾回收算法与垃圾收集器的关系?分别是什么请你谈谈?

7、 怎么查看服务器默认的垃圾回收器是哪一个?

       生产上如何配置垃圾收集器的?

       谈谈你对垃圾收集器的理解?

8、G1垃圾收集器

9、生产环境服务器变慢,诊断思路和性能评估谈谈?

10、假如生产环境CPU占用过高,请谈谈你的分析思路和定位。

11、对于JDK自带的监控和性能分析工具用过哪些?一般你怎么用的?

 

1、JVM常用参数

-Xms                                       初始堆内存大小,默认物理内存64/1

                                               -Xms = -XX:InitialHeapSize

 

-Xmx                                         最大堆内存,默认物理内存4/1

                                                 -Xmx = -XX:MaxHeapSize

 

-Xss                                           栈内存大小

                                                 设置单个线程栈大小,一般默认512~1024kb。

                                                 单个线程栈大小跟操作系统和JDK版本都有关系

                                                 -Xss = -XX:ThreadStackSize

 

-Xmn                                        年轻代大小

 

-XX:MetaspaceSize                     元空间大小

                                                    元空间本质跟永久代类似,都是对JVM规范中方法区的实现。

                                                    不过元空间与永久代最大的区别在于:元空间并不在虚拟机中,而是使用本机内存。

                                                    因此,元空间大小仅受本地内存限制。

 

-XX:+PrintGCDetails                   打印GC详细日志信息

 

-XX:SurvivorRatio                       幸存者比例设置

-XX:NewRatio                            新生代比例设置

-XX:MaxTenuringThreshold        进入老年代阈值设置

 

2、查看元空间MetaspaceSize默认值

(1)java -XX:+PrintFlagsInitial

JVM常用基础参数-元空间MetaspaceSize讲解_第1张图片

uintx MetaspaceSize                             = 21810376(大约20.80MB)                            {pd product}

(2)JVM常用参数案例

【1】默认JVM命令行参数

-XX:InitialHeapSize=265858688

-XX:MaxHeapSize=4253739008

-XX:+PrintCommandLineFlags

-XX:+UseCompressedClassPointers

-XX:+UseCompressedOops

-XX:-UseLargePagesIndividualAllocation

-XX:+UseParallelGC

 

【2】JVM常用参数设置

       -Xms128m -Xmx4096m -Xss1024k -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC

       设置完毕之后,运行程序如下:

       JVM常用基础参数-元空间MetaspaceSize讲解_第2张图片

      

      -XX:InitialHeapSize=134217728

      -XX:MaxHeapSize=4294967296

      -XX:MetaspaceSize=536870912

      -XX:+PrintCommandLineFlags

      -XX:+PrintGCDetails

      -XX:ThreadStackSize=1024

      -XX:+UseCompressedClassPointers

      -XX:+UseCompressedOops

      -XX:-UseLargePagesIndividualAllocation

      -XX:+UseSerialGC

 

【3】Java1.8默认垃圾回收器

       -XX:+UseParallelGC 并行垃圾回收器(默认)

       -XX:+UseSerialGC   串行垃圾回收器

你可能感兴趣的:(Java,Java,JUC分析)