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