-
2022-03-13 21:06:20
JVM参数有3种
- 标准参数
java -version/-help
-
-X参数(使用较少)
非标准参数,随着JDK版本变动,如-Xint -
-XX参数(使用较多)
(1)Boolean类型
-XX:[+/-]name 启用或停止,如:-XX:+UseG1GC 启用G1垃圾收集器 -XX:-UseG1GC 停止G1垃圾收集器
(2)非Boolean类型
-XX:name=value,如:-XX:MaxHeapSize=100M 设置堆内存 -
其他参数(由-XX参数变形)
-Xms100M 等于 -XX:InitialHeapSize=100M
-Xmx100M 等于 -XX:MaxHeapSize=100M
-Xss100k 等于 -XX:ThreadHeapSize=100M
查看JVM参数
查看所有的参数
java -XX:+PrintFlagsFinal
查看某一个的参数或修改参数
jinfo
JVM参数修改方式
- IDEA/eclipse启动时设置JVM options
- 运行程序时在命令行中设置:java -XX:+UseG1GC -jar xxx.jar
- tomcat 中修改catalina.sh
- 实时运行时修改不用重启,jinfo
常用的JVM参数
https://www.cnblogs.com/chnluxi/p/14136939.html
更多相关内容 -
jinfo_动态调整JVM参数(无需重启)(实践)
2021-03-10 07:31:16本文演示在JVM进程运行过程中动态开启/关闭 GC输出,无需重启JVM进程jinfo使用介绍可以...设置指定JVM参数的布尔值-flag = pid:设置指定JVM参数的值有一点必须注意:PrintGC必须开启,只开启PrintGCDetails、P...本文演示在JVM进程运行过程中动态开启/关闭 GC输出,无需重启JVM进程
jinfo使用介绍
可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
-flag pid:打印指定JVM的参数值
-flag [+|-] pid:设置指定JVM参数的布尔值
-flag = pid:设置指定JVM参数的值
有一点必须注意:PrintGC必须开启,只开启PrintGCDetails、PrintGCTimeStamps不会输出GC,必须PrintGC同时开启
1、JVM启动时设置以下参数:-Xmx20m -Xms20m -Xmn2m,代码如下(改代码会发生GC)
2、使用jinfo查看JVM GC的相关参数值
3、启动GC输出
4、控制台GC输出
170.658: [GC [PSYoungGen: 0K->0K(1536K)] 18091K->18091K(19968K), 0.0006562 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
170.658: [GC [PSYoungGen: 0K->0K(1536K)] 18091K->18091K(19968K), 0.0003981 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
170.659: [Full GC [PSYoungGen: 0K->0K(1536K)] [ParOldGen: 18091K->2048K(18432K)] 18091K->2048K(19968K) [PSPermGen: 3280K->3280K(21504K)], 0.0060813 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
5、参考资料
-
使用docker-compose,调整JVM参数
2022-04-11 17:00:30服务器配置比较低,导致部署在docker里的微服务不能完全启动,就想调整下jvm参数优化下,又因为启动容器用的是docker-compose,网上很多直接用docker run 调整JVM参数的方法不能用,参考多篇文章后总结一个适用...场景:
服务器配置比较低,导致部署在docker里的微服务不能完全启动,就想调整下jvm参数优化下,又因为启动容器用的是docker-compose,网上很多直接用docker run 调整JVM参数的方法不能用,参考多篇文章后总结一个适用docker-compose的完整方法。
方法:
1. Dokerfile里添加 ENV JAVA_OPTS=“”,如下:
RUN mkdir -p /test WORKDIR /test ADD ./target/test.jar ./test.jar ENV JAVA_OPTS="" CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar test.jar --spring.profiles.active=dev #ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/test.jar"] EXPOSE 6101
2.docker-compose 里加上environment的配置,如下:
blade-test: image: "${REGISTER}/test:${TAG}" environment: - TZ=Asia/Shanghai - JAVA_OPTS=-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC privileged: true restart: always networks: - test_net
其中,JAVA_OPTS="…"是对JVM参数的配置。
3. 执行docker-compose up -d blade-test 启动就好了,查看是否生效,可以执行如下命令:
1)进入容器:docker exec -it 容器ID /bin/bash
2)直接输入 top 命令,如下:
可看到基本的容器占用的信息:pid、vsz、cpu、command等。(ctrl+c 或 q,退出top)
3)查看更具体的jvm内存占用:
top -m
就这么着OK了。
参考文章地址:https://blog.csdn.net/asenseof/article/details/107918861
-
mac上调整jvm参数没效果的坑
2020-04-08 20:54:16按照网上的教程,在进行jvm参数调优的时候,无论修改xmx,xms,xss参数,可创建的最大线程数就是不变,很奇怪啊~ 测试代码 public class ThreadTest extends Thread { public static void main(String[] args) { for...遇到的问题
按照网上的教程,在进行jvm参数调优的时候,无论修改xmx,xms,xss参数,可创建的最大线程数就是不变,很奇怪啊~
测试代码
public class ThreadTest extends Thread { public static void main(String[] args) { for (int i = 0; ; i++) { System.out.println("i = " + i); new Thread(() -> { try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } }).start(); } } }
刚开始的执行结果一直是2028,如果你们也是这样,那你们也应该是一个接近的值,刚开始的参数 -Xmx1g -Xms1g -Xss1M
问题解决
1.mac上有一个单进程的最大线程数限制,可以输入下面命令查看。
sysctl kern.num_taskthreads
也就是说你的最大线程数永远不可能超过20482.除了上面这个问题,还有个坑,就是参数的设置问题
-Xmx1g -Xms1g -XX:ThreadStackSize=230m
就是得用-XX:ThreadStackSize,而不能用-Xss
就上面这两点,可以试试把-XX:ThreadStackSize=1m 调整为 -XX:ThreadStackSize=100m 就能看出效果了
最后吐槽一下,Java官方文档也是挺坑的,没说明白吧。
-
JVM参数设置详细说明
2010-11-23 12:37:30JVM参数设置详细说明、JVM 参数设置详细说明 1: heap size a: -Xmx 指定jvm的最大heap大小,如:-Xmx=2g b: -Xms 指定jvm的最小heap大小,如:-Xms=2g,高并发应用,建议和-Xmx一样,防止因为内存收缩/突然增大带来... -
运维(4) nacos启动jvm参数调整解决内存占用过多问题
2021-01-13 22:58:10nacos以docker-compose方式启动jvm参数调整解决内存占用过多问题 -
jdk8 jvm 参数图(随手参考好资料)
2019-02-27 14:38:07常用jvm参数都在这张图中,参考起来方便,是国外大神整理的 -
IDEA设置JVM运行参数的方法步骤
2020-08-18 15:11:26主要介绍了IDEA设置JVM运行参数的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
java设置JVM参数
2021-02-28 11:37:10Arguments-》jvm。如图: 1.确保是当前程序(TestDemo15) 2. 参数: -Xms3M -Xmx5M 即初始给堆3M空间,最大是5M空间 IDEA 编辑栏点击当前项目-》选择Edit Configurations->VM options。如图: ... -
调整Jvm参数,让你的SpringBoot项目飞起来
2019-10-31 09:26:42在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。 修改配置文件 关于修改配置文件application.properties。 SpringBoot项目详细的配置文件修改文档 https://docs.spring.io/... -
tomcat调优以及jvm参数调优
2022-03-10 11:50:45tomcat jvm 调优 -
idea中设置JVM参数,简单理解JVM常见参数,JVM调优简单入门
2020-03-27 08:30:07前面学习了JVM的内存分布,今天就来验证下。顺便通过测试学习一下JVM的几个参数,不过测试是在idea中,所以先要在idea上设置JVM参数。 -
idea中设置JVM参数的两种方式
2022-03-25 17:46:36一、针对某个应用配置JVM参数 第一步:选择Run下面的Edit Configurations… 第二步:第一步打开后,出现如下界面,选择想配置的应用,然后在右侧的VM options设置JVM参数 配置完,重新运行项目就行了。 二、idea... -
JVM 参数设置
2021-03-15 02:17:34不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是... -
JVM常用调优参数 ——JVM篇
2022-03-18 22:18:15JVM常用性能调优参数详解 在学习完整个JVM内容后,其实目标不仅是学习了解整个JVM的基础知识,而是为了进行JVM性能调优做准备,所以以下的内容就是来说说JVM性能调优的知识。 一、性能调优 性能调优包含多个... -
JVM 参数配置详细介绍
2020-08-31 10:21:03主要介绍了JVM 参数配置详细介绍的相关资料,需要的朋友可以参考下 -
tomcat配置jvm参数
2020-05-29 16:44:11配置jvm参数位置不同,所需要的启动方式也不同 tomcat版本8.5 1、windows环境 几种方法之间可能会有重复、还没起细研究 方法一、通过bin目录下的tomcat8.exe启动 直接在java options中添加jvm参数以key=value的形式... -
IBM JVM参数选项
2019-05-06 17:34:35IBM JVM参数选项 虚拟机参数 -
JVM参数设置
2018-09-21 17:55:05JVM参数设置 基本参数 通过一张图来了解如何通过参数来控制各区域的内存大小 控制参数 -Xms设置堆的最小空间大小。 -Xmx设置堆的最大空间大小。 -XX:NewSize设置新生代最小空间大小。 -XX:MaxNewSize设置... -
jdk7 jvm 参数图(随时参考好资料)
2019-02-27 14:34:46常用jvm参数都在这张图中,参考起来方便,是国外大神整理的 -
springboot优化JVM参数
2020-10-17 16:34:011.1:参数 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC1 1.2:设置方式 在Configuration->VM options中设置即可,... -
idea调整jvm参数加快启动编译速度
2019-03-22 19:52:40idea调整jvm参数加快启动编译速度 内容如下: -Xms4096m -Xmx4096m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.... -
Eclipse设置jvm参数的三种方式
2022-01-13 14:33:19修改Elipse运行JRE默认JVM参数 打开Eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击Installed JREs,在右边选择前面有对勾的JRE,再单击右边的“Edit”按钮,出现一个 Edit JRE 的对话框,... -
Tomcat设置Jvm参数
2018-11-06 11:40:48由于启动服务的时候报了错,所以找原因呀,找到了...一、各参数的比例 -Xms是设置内存初始化的大小 -Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小) Xmx 与PermSize的和不可超过JVM可获得的总内... -
在java代码中获取JVM参数的方法
2020-08-31 14:57:44下面小编就为大家带来一篇在java代码中获取JVM参数的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
linux下修改jvm参数
2019-11-17 19:13:11vim /etc/profile 加入以下代码 export JAVA_OPTIONS=-Xms512m -Xmx512m