五种常用 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 SoftwareFoundation\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
修改完成以后保存,重启 weblogic 服务即可。
方法二:
直接修改 user_projects\domains\domain-name\bin 下的 startWebLogic.cmd 文件
找到一下代码:
@REM JAVA_OPTIONS – Java command-line options forrunning 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
重启 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, 如下配置即可
-Xmx2048m
-Xms1024m
-Xss1m
-Xdebug
-Dcom.sun.management.jmxremote
注:
在 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 验证码图片不能显示的问题。