求:关于Java应用部署上线前的优化准备~~

05-05-10 xucc80
最近开发了一个web帐务系统,上面催下来,需要马上部署上线,但是在这方面的经验比较缺乏,开发的时候总感觉很多东西都是实现至上的,所以总是对系统的性能和安全不放心~~~需要有一个对程序的全面检查修正优化的过程,但是感觉无从着手~~~

不知道大家又没有明白我的意思,大家有无这方面的文档资料呢?个人经验总结最是欢迎~~

采用的是oracle application server的服务器,部署经验也很需要。

系统的架构是 struts + session bean + entity bean结构,主要采用business deligate 和session facade的模式,参数传递用hashtable散列传递。

banq
2005-05-10 17:24
使用Borland的Optimizet跟踪服务器端,客户端使用Jmeter实现并发测试。

xucc80
2005-05-11 17:06
多谢板桥指点~~~

这些东西我还没有用过,真是羞愧难当~~~

dabb
2005-05-16 11:32
optimizert是很容易使用,但好象会产生内存泄露的问题?反正我用optimizert+loadrunner时,应用服务器的java线程是一个劲的疯涨(远远超过设置的max heap size大小)。不知道是不是我设置的有问题。

jmeter是开元的,但由于没有自动录制测试脚本的功能,对于小型的应用测试还可以,对于中大型的应用测试,写那些测试脚本就够你烦了。所以有条件还是找个loadrunner这样的商业化工具。

根据自身的经验,一般有这些步骤:

一、暴露问题

1、对于各个应用录制(编写)相应的测试脚本。

2、设置jvm到一个比较合适的大小,我觉的一般应用256m就够了,这样系统不会因为太少jvm heap而out of memory。太大的话,问题暴露的时间又会太长。

3、类似于2,设置相应的资源,比如io资源,db connection资源到比较合适的大小。

4、运用测试工具,加载少量的用户(比如15个),让它并发不停的运行(可以取消think time,以加快测试时间)。这样一般一两天下来有资源泄露的问题就可以暴露出来。

二、追踪问题根源

然后集成进profile工具,对相应的问题进行追踪分析。这方面有很大一部分是体现操作者的“功力”的。

至于安全问题,一般是应用方面的设计编程缺陷,再者就是查查有没有“sql入侵”方面的漏洞,不过一般如果使用jdbc预编译来写db操作,是可以避免的。还有就是web页面上的一些html特殊字符的过滤。

至于系统集成方面,一般就是访火墙等的设置,以及网络拓扑结构等,这方面我就不熟了,一般是系统集成的事。

三、压力测试

这就是根据你的系统应用和服务器配置多加些用户,利用jmeter,loadrunner之类的做压力测试。

还有就是根据应用需求,按实际应用对相应的表多加些数据,测试在大数据量下的压力反应。然后找出瓶颈,解决问题。在做测试前,服务器的各项资源参数都要调到对应压力用户合适的大小,象jvm heap ,connection pools,io,还有应用服务器的队列什么的,db的配置等等,如果用到特定技术,比如jms,还得注意调整相关的参数。

总之这方面应该是比较大的一个话题,上面只是简单列出一些普通步骤。

猜你喜欢