java面试-JVM调优和参数配置

JVM的参数类型:

1、标配参数:

java -version
java -help

2、X参数:

-Xmixed 混合模式

-Xint  解释执行

-Xcomp 第一次使用就编译成本地代码

3、XX参数:

  • Boolean类型:公式:-XX:+ (+表示开启 -表示关闭)

问题:如何查看一个正在运行中的java程序,它的某个JVM参数是否开启?

  jps -l
  jinfo -flag PrintGCDetails 10729
  • KV设值类型:公式:-XX:属性key=属性值value=

例如:-XX:MetaspaceSize=134217728

4、两个经典参数:

-Xms1024m -Xmx1024m  谈谈你的理解

 -Xms等价于 -XX:initialHeapSize

-Xmx等价于 -XX:MaxHeapSize

二、如何查看JVM系统参数的默认值

java -XX:+PrintFlagsInitial  --查看出厂默认值

java -XX:+PrintFlagsFinal  --查看修改更新  (= 没有修改过  := 人为修改过)

原文地址:https://www.cnblogs.com/wjh123/p/11080121.html

时间: 2024-08-29 21:46:56

java面试-JVM调优和参数配置的相关文章

jvm调优具体参数配置

3.JVM参数 在JVM启动参数中,可以设置跟内存.垃圾回收相关的一些参数设置,默认情况不做任何设置JVM会工作的很好,但对一些配置很好的Server和具体的应用必须仔细调优才能获得最佳性能.通过设置我们希望达到一些目标: GC的时间足够的小 GC的次数足够的少 发生Full GC的周期足够的长 前两个目前是相悖的,要想GC时间小必须要一个更小的堆,要保证GC次数足够少,必须保证一个更大的堆,我们只能取其平衡. (1)针对JVM堆的设置,一般可以通过-Xms -Xmx限定其最小.最大值,为了防止

JVM调优常用参数和注意点备忘录

本文主要是工作过程中总结的一些jvm调优的参数和注意的地方,作为一个备忘录,先占个坑,有时间在来细化具体的实例. gc日志是覆盖的方式如果文件名字固定会导致上一次被覆盖可以采用这个-Xloggc:backv2_gc_%t.log jinfo可以动态修改java -XX:+PrintFlagsFinal -version|grep manageable这些参数 打印java可配置的非稳定参数:java -XX:+PrintFlagsFinal ,输出的信息中 ":=" 表明了参数被用户或

JVM调优及参数设置

(1)参数 -Xms:初始堆大小 -Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存 -Xmn :年轻代大小 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8. -XX:NewSize:设置年轻代大小 -XX:MaxNewSize:年轻代最大值 -XX:NewRatio 年老代与年轻代的比值 -XX:SurvivorRat

JVM调优常用参数

查看dump信息 #jps #jps查看所有进程信息 #jstack -l pid > stack.log #dump出该进程的所有线程信息及状态 dump文件里的线程状态有: 死锁,Deadlock(重点关注) 死锁线程,一般指多个线程调用间,进入相互资源占用,导致一直等待无法释放的情况. 执行中,Runnable   一般指该线程正在执行状态中,该线程占用了资源,正在处理某个请求,有可能正在传递SQL到数据库执行,有可能在对某个文件操作,有可能进行数据类型等转换. 等待资源,Waiting

jvm调优的参数设置

-XX: MaxDirectMemorySize--->设置直接内存,不设置与Java堆内存最大值一致,就是jvm虚拟机运行可支配的内存 -XX:PermSize(老年代大小)和-XX:MaxPermSize(永久代大小)--->设置方法区大小 -Xoss--->设置本地方法栈大小(实际无效,栈容量只由-Xss设定) -XX:+HeapDumpOnOutOfMemoryError--->生成内存溢出快照(查看内存溢出快照的工具,安装JDK时,有自带了几种工具,具体怎么使用百度.谷歌

JVM调优经验分享

前言 一.JVM调优知识背景简介 二.JVM调优参数简介 三.JVM调优目标 四.JVM调优经验 结束语 <br/> 本次分享探讨的JVM调优是指server端运行的JVM调优,适应版本为[1.6– 1.7], 不涉及最新的1.8版本. 假设线程池.连接池.程序代码等都已经做过优化,效果(系统吞吐量.响应性能)仍然不理想,我们就可以考虑JVM调优了. <br/> 一. JVM调优知识背景简介 1.堆与栈的概念 堆和栈是程序运行的关键:栈是运行时的单位,而堆是存储的单位. 栈解决程序

JVM调优[转]

JVM调优总结-序 几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西.突然发现,基础真的很重要.学习的过程是一个由表及里,再由里及表的过程.呵呵,所谓的"温故而知新".而真正能走完这个轮回的人,也就能称为大牛或专家了.这个过程可能来来回回,这就是所谓"螺旋上升",而每一次轮回都有新的发现. 这回添加的东西主要集中在基础的一些问题上,还有一些这两年思考的问题.这些问题可能平时我们不会刻意去想,但是真正看清楚了,却发现还是大有裨益的:)希望对大

JVM 调优参数详解

GC有两种类型:Scavenge GC 和Full GC 1.Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor的两个区中. 2.Full GC 对整个堆进行整理,包括Young.Tenured和Perm.Full GC 比Scavenge GC要慢,因此应该尽可能减少Full GC,有如下原因可能导致Full GC a.Tenured被写满: b.P

转: jvm调优参数总结

JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured generation和permanet generation.绝大部分的objec被分配在young gener