linux环境下tomcat容器中 jvm通过catalina.sh内存限制 – 21运维
通知: .-...

linux环境下tomcat容器中 jvm通过catalina.sh内存限制

tomcat 21运维 4523浏览 0评论

前段时间,线上服务器一个项目内存泄漏把内存跑多了,导致整个服务器出问题,于是内存限制就需要去搞一下。下边简单记录下更改jvm内存限制:

[[email protected] bin]# cd /usr/local/tomcat_8080/bin/
[[email protected] bin]# ll
total 792
-rw-r--r-- 1 root root  27099 Jun 15 16:40 bootstrap.jar
-rw-r--r-- 1 root root   1647 Jun 15 16:41 catalina-tasks.xml
-rw-r--r-- 1 root root  13372 Jun 15 16:40 catalina.bat
-rwxr-xr-x 1 root root  21704 Jul  4 07:55 catalina.sh

进入了项目里边的bin目录找到 catalina.sh 添加如下:

CATALINA_OPTS="$CATALINA_OPTS -Xms256M -Xmx512M -Xmn256M"

重启该进程,查看如下:

[[email protected] bin]# ps aux | grep java
root        314  1.4  7.7 2972648 145444 pts/0  Sl   07:55   0:08 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_8080/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Xms256M -Xmx512M -Xmn256M -Djava.endorsed.dirs=/usr/local/tomcat_8080/endorsed -classpath /usr/local/tomcat_8080/bin/bootstrap.jar:/usr/local/tomcat_8080/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat_8080 -Dcatalina.home=/usr/local/tomcat_8080 -Djava.io.tmpdir=/usr/local/tomcat_8080/temp org.apache.catalina.startup.Bootstrap start
root        343  0.0  0.0   9040   672 pts/0    S+   08:05   0:00 grep --color=auto java

可见:
Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Xms256M -Xmx512M -Xmn256M 已经是修改成功了。

这里简单记录设定,参数是测试机的,非正式环境。正式环境的JVM优化比这个还要复杂一些,刚才的参数简单说明如下:
1,说明参数: -Xms256M初始内存大小 -Xmx512M最大内存大小 -Xmn256M 最小内存大小
2,默认:初始值是物理内存的1/64 最大内存是物理内存1/4 可以根据自己服务器配置内存配置情况和项目部署情况进行配置。
3,可以根据一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

转载请注明:21运维 » linux环境下tomcat容器中 jvm通过catalina.sh内存限制

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址