中美大都会性能优化总结
客户硬件:
2U4核、32位机器,应用服务器和数据库服务器分开独立部署
客户软件:
Websphere6.0,Orcale10g,SqlServer2003,润乾RBP
性能问题描述:
1、 并发量大时,数据库连接耗尽。
2、 报表累计访问到一定数量后,应用服务器端报内存溢出,产生大量宕机文件,之后服务器无响应,报表不能访问。
3、 特定报表组单独展示非常慢。
4、 大数据量报表导出Word内存溢出。
按先后顺序对大都会项目所做调整:
1、 修改程序,使原有程序中没有关闭的数据库链接都关闭。
2、 之前由于websphere-JIT与润乾报表有冲突,对JIT做了禁用,但禁用JIT后性能比较差,所以采用如下方法打开JIT,跳过与润乾的冲突:
进入was安装目录\IBM\WebSphere\AppServer\bin\setupCmdLine.bat 把SET JITC_COMPILEOPT=COMPILING;SKIP{com/runqian/report4/view/html/HtmlCell}{getStyle}添加到setupCmdLine.bat重启websphere即可。
非windows系统中设置JITC_COMPILEOPT选项时需注意的问题
1) 在was安装目录\IBM\WebSphere\AppServer\bin\setupCmdLine.sh中设置
2) 设置时不用加set;且COMPILING后一定要用冒号,不能用分号。
JITC_COMPILEOPT=COMPILING:SKIP{com/runqian/report4/view/html/HtmlCell}{getStyle}
3、 对润乾配置文件reportConfig.xml中maxWaitTimeForReport属性改为300,此配置项是防止大报表计算时内存不足瘫痪在队列池中等待阻塞后面报表请求。
4、 在满足客户业务需求的前提下将原有报表组拆分成多张报表单独显示。
5、 使用大报表分块循环导出的方式改写原有导出Excel功能,使导出请求内存的吞吐量降低,避免一次请求大量内存导致的内存不足,也是JVM有时间和资源进行垃圾回收。
6、 替换授权文件,增加其缓存功能,使读相同报表时采用缓存机制,降低内存和CPU的使用量。
7、 关闭websphere宕机文件生成:
1. 打开管理控制台,依次选择:服务器> 应用服务器> 需要更改的服务器名称> 进程定义> 环境条目
2. 新建如下的2个条目:
Name Value
IBM_HEAPDUMP_OUTOFMEMORY false
IBM_JAVADUMP_OUTOFMEMORY false
3. 保存配置的更改,重新启动WAS
8、 控制并发量,防止高并发对服务器造成过载的压力。