1.带宽
你可以假设56kps的带宽可以处理7-10个同步客户端的连接。(取决于你所发布的页面大小)
为了判断你的系统是否有足够的带宽,你可以使用操作系统自带的网络监视工具,来判断负载高低,
带宽是不是你的系统瓶颈。
2.调节JVM
a.JVM 的堆栈空间和垃圾回收
如果你设置很大的堆栈空间,那么执行一次完全的垃圾回收变的更慢,但回收频率下降;
如果你根据你的内存需要来设置堆栈空间,那么垃圾回收会更快,但回收频率上升;调节堆栈空间的
目的就是让你的虚拟机花费最小的时间来做垃圾回收,在给定的时间让weblogic处理更多的客户端。
许多对象被分配内存以后马上就变成垃圾,这些对象据说是具有“婴儿的死亡率”,你的应用程序
创建释放对象的频率直接影响着堆栈空间大小,而堆栈空间大小决定垃圾回收发生的频率,因此,
要尽可能的缓存一个对象以便再利用,而不是重新创建一个对象!!!
详细垃圾回收可以让你准确计算多少时间和资源在垃圾回收,从而决定最有效的堆栈大小,
打开详细垃圾回收,重定向输出到日志文件,以便诊断,大致步骤如下:
1)在最大负载下监视weblogic性能。
2)使用-verbosegc 选项打开详细垃圾回收输出,并重定向到日志文件。
举个例子:在windows或solaris下,输入以下:
% java -ms32m -mx200m -verbosegc -classpath $CLASSPATH
-Dweblogic.Name=%SERVER_NAME% -Dbea.home="C:/bea"
-Dweblogic.management.username=%WLS_USER%
-Dweblogic.management.password=%WLS_PW%
-Dweblogic.management.server=%ADMIN_URL%
-Dweblogic.ProductionModeEnabled=%STARTMODE%
-Djava.security.policy="%WL_HOME%/server/lib/weblogic.policy"
weblogic.Server
>> logfile.txt 2>&1
这样日志就被写入:logfile.txt
3)分析以下数据:
a).垃圾回收发生有多频繁?在weblogic.log文件中,比较垃圾回收时间戳。
b).垃圾回收花费了多长时间?完全的垃圾回收不应该会超过3-5秒。
c).每次垃圾回收以后堆栈稳定在多少?如果堆栈空间一直稳定在85%的空闲,那么你可能需要
把堆栈尺寸变小。
4)如果你正在使用1.3版本的JVM,设置新的初始堆栈尺寸。
5)确信堆栈尺寸没有超过可获得的最大内存大小。
尽可能的使用大的堆栈尺寸而不导致操作系统把page交换到磁盘。空闲的RAM取决于你的
硬件配置。
6)如果你发现你的系统花费太多的时间在垃圾回收上(你分配的虚拟内存超过了你的RAM
可以处理的范围),那么你可能要降低你的堆栈尺寸大小。
典型的,你应该使用80%的可获得的内存(没有被操作系统或其他进程占用)来作为虚拟内存。
7)如果你发现你有很大的空闲内存,你可以在你的机器上运行更多的weblogic server实例
(集群)。记住:调节堆栈尺寸大小的目的是为了你的JVM虚拟机花费最少的时间的做垃圾回收,以及
让WEBLOGIC SERVER能够处理最多数量的客户请求。
b.指定堆栈尺寸大小
在WEBLOGIC SERVER启动的时候,JVM的堆栈尺寸大小必须被指定。
举个例子:当启动WEBLOGIC SERVER的时候,堆栈尺寸大小应该如下:
java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8
-Xms512m -Xmx512m
-Dweblogic.Name=%SERVER_NAME% -Dbea.home="C:/bea"
-Dweblogic.management.username=%WLS_USER%
-Dweblogic.management.password=%WLS_PW%
-Dweblogic.management.server=%ADMIN_URL%
-Dweblogic.ProductionModeEnabled=%STARTMODE%
-Djava.security.policy="%WL_HOME%/server/lib/weblogic.policy"
weblogic.Server
缺省的尺寸以字节计算,在值后面附加'k'或'K'表示的是kb,'m'或'M'表示mb,'g'或'G'
表示gb,
WEBLOGIC SERVER启动脚本是startWLS.cmd和setEnv.cmd(windows操作系统)或startWLS.sh和setEnv.sh
(UNIX操作系统)这些脚本在WL_HOME/server/bin,
选项:-XX:NewSize 使用这个选项来设置新产生的堆栈大小,一般设置为最大堆栈尺寸的1/4;
-XX:MaxNewSize 设置最大新产生的堆栈尺寸;
-XX:SurvivorRatio 新产生的堆栈空间被分割成3个区域:Eden 2个生存空间,使用这个选项来
配置Eden/survivor的比例,一般设置成8;
-Xms 使用这个选项来设置最小堆栈空间,一般设置成等于最大堆栈空间(-Xmx)来最小化
垃圾回收。
-Xmx 使用这个选项来设置最大的堆栈空间;
注:所有这些设置数值都应该是1024的倍数。
c.自动检测低内存、强制垃圾回收