weblogic和websphere中jvm设置
在企业级应用中经常会使用weblogic或者websphere这样的企业级应用服务器,下面就大概介绍下这两种服务器增加jvm的方法。
weblogic的一些优化配置:
由于WebLogic分配的内存太少了。通过修改commom\bin\commEnv.cmd文件来增加内存分配。
修改的部分如下:
:bea
if “%PRODUCTION_MODE%” == “true” goto bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m//原来是128M~256M,太小了,数据太大
goto continue
在:bea下面还有一段配置信息如下:
: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
上面对第一段代码是为bea自己的JVM设置的,下面的是为Sun的设置的。而WebLogic默认的是Sun的。在JDK的选择上,weblogic有两种JDK供选择,一种是Sun的JDK,另外一种是Bea的jrockit。按照bea的网站的说明,sun jdk提供更好的兼容性,而使用jrockit可以提供更好的性能。作为weblogic集群最好采用jrockit作为JDK环境,以达到更高的性能。
在默认启动情况下,jrockit启动时为其窗口配置的内存大小比较小。注意weblogic的启动内存配置-Xms32m -Xmx256m,通过修改commEnv.sh可以修改这个参数,Xms表示启动开始分配的内存,Xmx表示最大能分配的内存,这里我们根据应用情况调整为-Xms1536m -Xmx1536m,这样设置后的的窗口内存大小为1536M(2G× 75%),这点需要根据自身测试情况和系统配置进行调整,最合理的应该是恰好把物理内存用完。
websphere虚拟机jvm的一些设置:
针对 WebSphere Application Server 调整 JVM 的一个良好起点,但可能会根据负载测试进行调整。要将这些 JVM 参数添加到 WebSphere Application Server,请执行以下操作:
1. 从管理控制台中选择 Servers => Application Servers -=> server_name => Process Definition => Java Virtual Machine。
2. 选中 Verbose Garbage Collection(要记得将其关闭)。
3. 将 Initial Heap Size 设置为 1024。
4. 将 Maximum Heap Size 设置为 1024。
5. 添加 -server,作为 Generic JVM 参数框中的第一个参数,然后在现有的其他参数后面添加以下参数:
-XX:ParallelGCThreads=8
-XX:PermSize=128m
-XX:MaxPermSize=128m
-Xloggc:wls-gc.log
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
–XX:PermSize=64m //最小堆大小
–XX:MaxPermSize=128m //最大堆大小
PermSize大一点肯定更好,而且最好是设置PermSize和MaxPermSize一样大。理由如下: PermSize 和MaxPermSize如果设置为相同还可以在一定程度上提高性能,因为,PermSize在不断的变化中会需要转移其中的数据。如果固定了以后,则可以减少每次扩大PermSize带来的性能损失。以上配置可能会根据负载测试进行调整。