JVM内存模型深度剖析与深度优化
2023-12-14 02:32:20
一、JVM整体结构及内存模型
二、JVM内存参数设置
Spring?Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里):
关于元空间的JVM参数有两个:-XX:MetaspaceSize=N和?-XX:MaxMetaspaceSize=N
-XX:MaxMetaspaceSize
:?设置元空间最大值,?默认是-1,?即不限制,?或者说只受限于本地内存大小。
-XX:MetaspaceSize
:?指定元空间触发Fullgc的初始阈值(元空间无固定初始大小),?以字节为单位,默认是21M,达到该值就会触发
full?gc进行类型卸载,?同时收集器会对该值进行调整:?如果释放了大量的空间,?就适当降低该值;?如果释放了很少的空间,?那么在不超
过-XX:MaxMetaspaceSize(如果设置了的话)?的情况下,?适当提高该值。这个跟早期jdk版本的
-XX:PermSize
参数意思不一样,-
XX:PermSize
代表永久代的初始容量。
由于调整元空间的大小需要Full?GC,这是非常昂贵的操作,如果应用在启动的时候发生大量Full?GC,通常都是由于永久代或元空间发生
了大小调整,基于这种情况,一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值要大,
对于8G物理内存的机器来说,一般我会将这两个值都设置为256M。
三、日均百万级订单交易系统如何设置JVM参数
结论:
通过上面这些内容介绍,大家应该对JVM优化有些概念了,就是尽可能让对象都在新生代里分配和回收,尽量别
让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时给系统充足的内存大小,避免新生代频繁的进行垃
圾回收。
文章来源:https://blog.csdn.net/oWuChenHua/article/details/134936340
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!