1人参与 • 2026-09-01 • 内存
环境规格以 2c4g 为例
配置添加在 tomcat 的 bin 目录下 catalina.sh 里,位置在 cygwin=false 前。
java_opts="$java_opts -server -xms2048m -xmx2048m -xmn768m -xx:parallelgcthreads=2 -xx:permsize=1024m -xx:maxpermsize=1024m -djava.awt.headless=true -xx:+disableexplicitgc" cygwin=false
默认空余堆内存小于40%时,jvm就会增大堆直到-xmx的最大限制;空余堆内存大于70%时,jvm会减少堆直到 -xms的最小限制。
因此建议-xms与-xmx设成一样的值,均设为物理内存的一半。其目的是为了避免在java每次gc(垃圾回收机制清理堆区)后需要重新调整堆的大小而浪费资源。
堆区进一步细化分为:新生代、中生代、老生代。 ●java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。
整个jvm堆大小 = 新生代大小 + 老生代大小 + 永久代大小
非堆区内存是不会被java垃圾回收机制进行处理的,且最大堆内存与最大非堆内存的和不能超出操作系统的可用内存。
xmx和xms设置一样大,maxpermsize和minpermsize设置一样大,这样可以减轻伸缩堆大小带来的压力。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论