java虚拟机内存不足_Java虚拟机详解(五)——JVM参数(持续更新)

 2024-02-27 00:04:30  阅读 0

目录

1、标准参数

2.X参数

3.XX参数

①、类型

②、Key-Value类型

4.参数详细解释(持续更新)

JVM 参数有很多。 事实上,我们直接使用默认的JVM参数,无需修改,就可以满足大多数情况。 但如果想要在有限的硬件资源下使部署的系统达到最大的运行效率,那么设置相关的JVM参数是必不可少的。 下面我们将详细介绍这些JVM参数。

JVM参数主要分为以下三种(可以根据书写形式来区分):

回到顶部

1、标准参数

标准参数,顾名思义,标准参数包含的功能和输出结果非常稳定,基本不会随着JVM版本的变化而改变。

我们可以通过 -help 命令检索所有标准参数。

这些命令的详细解释可以参考官网:

-help也是一个标准参数,更常用的是-。

①、-

显示Java版本信息。

回到顶部

2.X参数

与前面提到的标准化参数相对应,这是一个非标准化参数。 表示未来的JVM版本可能会发生变化,但以-X开头的参数变化比较小。

我们可以通过Java -X 命令检索所有-X 参数。

关于这些参数的介绍,上图中的中文解释其实已经很清楚了,这里就不过多介绍了。

回到顶部

3.XX参数

这是我们日常开发中接触最多的参数类型。 这也是一个非标准化的参数,比较不稳定,可能会随着JVM版本的变化而变化。 主要用于JVM调优和调试。

注意:该参数是我们后面关于JVM调优讲解最多的参数。

该参数的书写形式分为两类:

①、类型

格式:-XX:[+-]表示启用或禁用名称属性。

示例:-XX:+(表示启用G1垃圾收集器)

②、Key-Value类型

格式:-XX:=表示name的属性值为value。

示例:-XX:=500(表示GC最大暂停时间设置为500ms)

回到顶部

4.参数详细解释(持续更新)

在本节中我们将继续更新并列出一些 JVM 参数。

1、打印用户或当前虚拟机已设置的参数

-XX:+s

例如:

2.最大堆和最小堆内存设置

-:设置堆内存初始值为512M

-:设置最大堆内存为1024M

这里ms是start的缩写,mx是max的缩写,分别代表最小堆容量和最大堆容量。 但这里不要看-X参数。 其实就是-XX参数,相当于:

-XX:

-XX:

一般情况下,服务器项目运行过程中,堆空间会不断收缩和膨胀,这必然会造成不必要的系统压力。 因此,在生产环境中,JVM的Xms和Xmx应该设置为相同,以避免GC调整堆大小带来不必要的压力。

3.转储异常快照并以文件形式导出

-XX:+

-XX:

堆内存发生OOM的概率是所有内存耗尽异常中最高的。 发生错误时堆中的信息对于解决问题很有帮助,所以给JVM设置这个参数(-XX:+),这样JVM就可以输出堆中的信息,并设置堆内存的文件地址通过(-XX:+)参数溢出快照输出。 这对于相隔几个月发生的 OOM 异常尤其重要。

这两个参数通常一起使用:

-XX:+ -XX:=./oom.dump

4.发送OOM后,执行脚本

-XX:

例如,这样设置:

-XX:="C:\Files\Java\jdk1.8.0_152\bin\.exe"

表示发生OOM后,运行.exe程序。 这里不需要添加“”,因为.exe路径Files包含空格。

利用该参数,我们可以在系统OOM后自定义一个脚本,可用于发送邮件报警信息、重启系统等。

5.打印gc信息

①. 打印简单的GC信息

-:GC

-XX:+

一个是标准参数,另一个是-XX参数,这两个参数都会打印详细的gc信息。 通常会打印以下信息:

例如第一行表示GC之前存在的内存被回收。 回收后,剩余1088K,总内存为

②. 打印详细的 GC 信息

-XX:+

-XX:+

6.指定GC日志输出为文件

-:./gc.log

该参数用于将gc日志以文件的形式输出,这样可以方便我们查看日志并定位问题。

7.设置永久代大小

-XX:=1280m

在JDK1.7及以前的版本中,只有Perm区,称为永久代,在启动时大小是固定的,很难调优。

某些情况下,如果动态加载的类过多,很容易导致Perm区OOM。 例如,在实际的Web项目中,由于功能点较多,运行时必须不断动态加载很多类,就会出现类似的错误:

“在‘​​dubbo xx’java.lang中:”

为了解决这个问题,需要在启动项目时设置运行参数-XX:。

注意:在JDK 1.8及以后版本中,使用元空间而不是永久代。 在JDK1.8及以后的版本中,如果设置了参数-XX:,启动JVM时不会报错,但会提示:

Java 64Bit VM:=1280m:在8.0中

8.垃圾收集器常用参数

参考文档:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码