五种常用web服务器jvm参数设置
一、tomcat
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。有以下几种方法可以选用:
第一种方法:在配置文件中设置
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS=’-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】‘
需要把这个两个参数值调大。例如:
JAVA_OPTS=’-Xms256m -Xmx512m’
表示初始化内存为256MB,可以使用的最大内存为512MB。
第二种方法:
环境变量中设
变量名:JAVA_OPTS
变量值:-Xms512m -Xmx512m
第三种方法:前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等),但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:
运行tomcatHome/bin/tomcat5w.exe,点击Java选项卡,然后将会发现其中有这么两项:Initial memory pool和Maximum memory pool.Initial memory pool这个就是初始化设置的内存的大小。Maximum memory pool这个是最大内存的大小 设置完了就按确定然后再重启TOMCAT你就会发现tomcat中jvm可用的内存改变了。
如果把tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS 属性的方法就不适用了,因为作为系统服务的话,系统启动时调用的是
%tomcat_home%”bin”tomcat5.exe,他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\Java中的JvmMs和JvmMx。
或者用上面说的第三种方法。
重起tomcat服务,设置生效。
二、weblogic
方法一:
找到安装目录下的weblogic\common\bin\commEnv.cmd文件,打开修改如下代码
sun
if “%PRODUCTION_MODE%” == “true” goto sun_prod_mode
set JAVA_VM=-client
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:sun_prod_mode
set JAVA_VM=-server
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
goto continue
一般在文件中,有二处这样的代码存在,一个是使用weblogic自带的jrockit JDK,二是使用sun的JDK.这里是以sun JDK为例
通过修过二处的=-Xms768m -Xmx1024m 可以达到修改JVM目的所在.修改后保存重启即可
如果做了以上设置以后还没有修改了,那就找到 bea\user_projects\domains\domain-name\bin目录下的setDomainEnv.cmd文件,修改以下代码:
Java代码
- set WLS_HOME=%WL_HOME%\server
- set MEM_ARGS=-Xms512m -Xmx1024m
- set MEM_PERM_SIZE=-XX:PermSize=128m
- set MEM_MAX_PERM_SIZE=-XX:MaxPermSize=256m
set WLS_HOME=%WL_HOME%\server
set MEM_ARGS=-Xms512m -Xmx1024m
set MEM_PERM_SIZE=-XX:PermSize=128m
set MEM_MAX_PERM_SIZE=-XX:MaxPermSize=256m
修改完成以后保存,重启weblogic服务即可。
方法二:
直接修改user_projects\domains\domain-name\bin下的startWebLogic.cmd文件
找到一下代码:
@REM JAVA_OPTIONS – Java command-line options for running the server. (These
@REM will be tagged on to the end of the JAVA_VM and
@REM MEM_ARGS)
在它下面添加一下代码
Java代码
- $ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
$ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
重启weblogic服务即可。
注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。
三、websphere
选择服务器-> 应用程序服务器-> Server1-> 进程定义->Java 虚拟机。
滚动到初始堆大小和最大堆大小字段并设置值。
单击确定以保存更改
四、jboss
windows 版本:
修改 run.bat
1G内存的配置 是其物理内存80%
set JAVA_OPTS=” -Xms800m -Xmx800m -Xmn256m -Xss128k”
linux 版本:
修改 run.conf文件
1g 内存的配置 是其物理内存25%
JAVA_OPTS=”-server -Xms256m -Xmx256m -Xmn80m -XX:PermSize=64m -XX:MaxPermSize=128m -Xss128k”
五、resin
resin3.0 及前期版本内存设置, 如下:
unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M
win> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M
install win service> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M -install -Xss1m.
resin3.1,
则只需修改resin.conf,如下配置即可
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xms1024m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
注:
在linux /unix 下或编辑 httpd.sh, 如下内容:
args=’-J-server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true’
说明
(1)J-server -Xms200m -Xmx1024m 其中,-Xms200m 表示启动时,初时内存大小,-Xmx1024m
最大内存占用大小。
(2)-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:内存的永久保存区域的大小
(3)-Djava.awt.headless=true 解决在linux/unix验证码图片不能显示的问题。