就 Linux 操作系统而言,为了获得最佳性能,推荐使用下列设置。 <o:p></o:p>
有关 Linux 调整的更多信息,需参考 Linux 供应商提供的文档。<o:p></o:p>
对于操作系统的调优是需要考虑的一个方面,需要相关的人进行调整设置并测试,我这里没有做相关的预研。<o:p></o:p>
1. 调整Java虚拟机<o:p></o:p>
(1) 选择合适的JVM<o:p></o:p>
<o:p> </o:p>
(2) 配置JVM垃圾回收堆<o:p></o:p>
以下部分提供了调整 VM 堆大小的一般准则: <o:p></o:p>
² 堆大小应设置为一个适当的值,从而使 VM 使用的最大内存量不超过可用物理 RAM 量。如果超过该值,则 OS 会开始分页,性能也会显著降低。VM 使用的内存始终多于堆大小。除了堆大小设置,还要分配内部 VM 功能、VM 之外的本地库和永久代内存(仅适用于 Sun VM:存储类和方法所需的内存)所需的内存。 <o:p></o:p>
² 使用分代式垃圾收集方案时,温床大小不应超过 Java 堆总大小的一半。通常情况下,堆大小的 25% 到 40% 就已足够。 <o:p></o:p>
² 在生产环境中,将最小堆大小和最大堆大小设置为同一值,可以避免浪费用于时常调整堆大小所需的 VM 资源。这也适用于新一代堆大小 (Sun) 或温床大小 (BEA Jrockit)。 <o:p></o:p>
将 -XX:NewSize 的大小设置为堆大小的四分之一,这是一条通用规则。如果存在大量短期对象,则增大此选项的值。 <o:p></o:p> |
||
将最小堆大小 (-Xms) 与最大堆大小 (-Xmx) 设置为相同的值,以便将垃圾收集的消耗降至最低,这是一条通用规则。 <o:p></o:p> |
||
请参阅 http://java.sun.com/docs/hotspot/ism.html <o:p></o:p> |
<o:p> </o:p>
例如,从 java 命令行启动 WebLogic Server 实例时,可使用以下命令指定 HotSpot VM 堆大小值: <o:p></o:p>
$ java -XX:NewSize=<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="128" negative="False" numbertype="1" hasspace="False">128m</st1:chmetcnv> -XX:MaxNewSize=<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="128" negative="False" numbertype="1" hasspace="False">128m</st1:chmetcnv> -XX:SurvivorRatio=8 -Xms<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="512" negative="False" numbertype="1" hasspace="False">512m</st1:chmetcnv> -Xmx<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="512" negative="False" numbertype="1" hasspace="False">512m</st1:chmetcnv><o:p></o:p>
建议省厅财政综合业务系统的设置:<o:p></o:p>
$ java -XX:NewSize=<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="256" negative="False" numbertype="1" hasspace="False">256m</st1:chmetcnv> -XX:MaxNewSize=<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="256" negative="False" numbertype="1" hasspace="False">256m</st1:chmetcnv> -XX:SurvivorRatio=8 –Xms<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="1024" negative="False" numbertype="1" hasspace="False"><st2:rtx w:st="on">1024</st2:rtx>m</st1:chmetcnv> –Xmx<st1:chmetcnv w:st="on" tcsc="0" unitname="m" sourcevalue="1024" negative="False" numbertype="1" hasspace="False"><st2:rtx w:st="on">1024</st2:rtx>m</st1:chmetcnv><o:p></o:p>
注:<o:p></o:p>
² 需要区别的是对于JVM版本的不一样,其设置也不一。请参考以上的各参数说明来设置。<o:p></o:p>
² 堆的大小一定要根据服务器硬件及实际用户访问量、系统资源利用情况、垃圾回收频率等因素综合考虑。<o:p></o:p>
2. 配置产品模式<o:p></o:p>
对于weblogic 有两种模式,分别为产品模式和开发模式,其主要区别在于发布部署方式和对线程数、连接池数的默认设置不一样。具体说明如下:<o:p></o:p>
功能<o:p></o:p> |
开发模式<o:p></o:p> |
产品模式<o:p></o:p> |
部署<o:p></o:p> |
替换文件会自动更新<o:p></o:p> |
替换文件后不会自动更新<o:p></o:p> |
Execute Queues<o:p></o:p> |
默认的执行线程为15<o:p></o:p> |
默认的执行线程为25<o:p></o:p> |
JDBC Connection Pool Capacity<o:p></o:p> |
默认的容量为15<o:p></o:p> |
默认的容量为25<o:p></o:p> |
对于Execute Queues和JDBC Connection Pool Capacity如何设置一个合理的数值,需要根据实际环境测试进行调整。需要注意的是,这两个参数不是越大越好。<o:p></o:p>
3. 调整性能相关的配置参数<o:p></o:p>
(1) pageCheckSeconds<o:p></o:p>
在weblogic中的默认设置是1, 表示WebLogic每一秒钟都针对每个JSP页面进行检查,看是否有新的版本。这在开发时是一个很好的设置,但是在生产中,如果系统有大量的JSP页面,这将会造成巨大的开销。<o:p></o:p>
对于财政综合业务系统,需要把这个参数设置成“-1”。<o:p></o:p>
在weblogic.xml 配置如下:<o:p></o:p>
<jsp-descriptor></jsp-descriptor><o:p></o:p>
<jsp-param></jsp-param><o:p></o:p>
<param-name></param-name> pageCheckSeconds<o:p></o:p>
<param-value></param-value> -1<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
文档太大,发不了,请参看
http://blog.csdn.net/xzhm1007/archive/2007/04/26/1585854.aspx