一、参数说明
-xms
: jvm初始分配的堆内存-xmx
: jvm最大允许分配的堆内存,按需分配-xx:permsize
: jvm初始分配的非堆内存-xx:maxpermsize
: jvm最大允许分配的非堆内存,按需分配
补充:
1、jvm初始分配的堆内存由-xms指定,默认是物理内存的1/64
2、jvm最大分配的堆内存由-xmx指定,默认是物理内存的1/4
3、默认空余堆内存小于40%时,jvm就会增大堆直到-xmx的最大限制
4、空余堆内存大于70%时,jvm会减少堆直到-xms的最小限制
因此服务器一般设置-xms、-xmx 相等以避免在每次gc 后调整堆的大小
二、windows服务器配置内存
1、进入tomcat的bin目录,找到catalina.bat
文件
2、打开catalina.bat
,在@echo off
下新增以下配置(内存大小可自行调整)
set java_opts=-server -xms512m -xmx512m -xx:permsize=512m -xx:maxpermsize=1024m
3、配置完成重启tomcat
三、linux服务器配置内存
1、进入tomcat的bin目录,找到catalina.sh
文件
2、打开catalina.sh
,新增以下配置(内存大小可自行调整)
java_opts="-server -xms200m -xmx200m -xx:permsize=124m -xx:maxpermsize=256m -xx:maxnewsize=256m"
3、配置完成重启tomcat
四、查看内存配置是否生效
方式一:重启tomcat,如果看到以下内容,说明配置成功(部分情况即使配置成功也有可能没有打印以下信息,这时可以使用ps -ef|greo xxx
命令查看进程信息)
方式二:使用ps -ef|greo xxx
命令查看进程信息
五、配置无效的情况
如果在tomcat配置多个java_opts
,配置位置最后的一项生效,其他靠前的配置不生效
如下,这时内存的配置是不生效的,但远程调试的配置是生效的
如下,这时远程调试的配置是不生效的,但是内存的配置生效的
六、在tomcat配置java_opts配置多个功能
示例一:
示例二:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论