上个月参加测试,从来没弄过性能测试,loadrunner也是现学的。
测试要求页面查询每秒事务量为250tps以上,相应时间小于100毫秒,一度以为要求太苛刻
前台是用struts2+extjs做的
结果发现才加几十个用户,响应时间就要好几秒,加到100个用户,都几十秒,页面根本没法进去,每秒事务量只有几十,崩溃。。。
为排除数据查询的影响,将action方法内容不做任何处理直接返回,结果仍然没变化,继续崩溃。。。
难道struts的性能如此差,上网查了很多优化办法都不奏效,无奈测试在即,只好将要考核的几个页面的框架改为了sevlert
结果效果出奇的好,1秒压一个用户,压了四五百个用户,每秒事务达到了3000tps,相应时间不到100毫秒,顺利通过测试~
测试结束后要对系统进行改造,如果把全部系统都改造为sevlert工作量太大了。怎么想都觉得没理由struts性能会那么差,肯定哪里有问题,埋头开始调查,取了官方的sample测试,结果效率还是很不错的。
于是重新建工程,一个个文件往上加进行测试,最后发现当我把struts.properties文件加上的时候,开始出现相应很慢的现象了
继续调查struts.properties,将struts.properties里配置的属性全部去掉一个个网上加,最后终于发现了问题所在
#该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。
struts.configuration.xml.reload=true 当改为false时,性能立马正常了!!泪奔啊,就这么一句话竟然带来那么多天的困扰!