请教关于JBOSS性能调优

06-08-09 zeelong
    

系统运行环境:

应用服务器:1G内存,P4 3.0

数据库服务器:Oracle9i RAC

应用程序架构:SLSB+Hibernate+Struts+JSP/Servlet,在获得Home对象是采用了缓存,EJB与WEB端之间采用了Façade/delegate,由Delegate类代理了所有WEB端对EJB端的访问

部署方式:Jboss3.2.7+Resin3.0.13

测试实例:

用HttpUnit模拟了200个并发访问系统的一个模块

整个操作过程有三步:登录-》组织数据-》审核,其中数据组织和审核均有存储过程完成,其中数据组织(不超过30S)和审核(不超过2分钟)事务较长,

若干配置参数:

Jboss

Connection Pool Max=200 Min=10

ThreadPool KeepAliveTime=60000 MinimumPoolSize=1 MaximumPoolSize=100 MaximumQueueSize=1000

Resin

Thread pool=128

在测试过程中发现登录在进行了150个左右,就停滞不前,怀疑在Resin处发生了堵塞;

通过打印出的耗时发现EJB实例负载一切正常(说明内存收集及对象池工作正常),数据库连接也获得正常,但JBOSS停滞不前,怀疑是TheadPool不够大;

因为业务逻辑采用了存储过程所以所有的运算、内存压力均在Oracle RAC端,RAC表现一切正常

我想请教各位的是,以上提到的各个参数之间有什么关系,例如WEB端的ThreadPool和JBOSS端的ThreadPool有何关系?对象池大小和ThreadPool有何关系?

    

1
banq
2006-09-07 10:20

发生这个问题,很难从外界断定,就象医生看病,有时很难从症状上判断,必须借助化验测试设备。

在服务器端运行borland 的optimizet或其他Profiler,你这个现象也可能是线程死锁,或内存泄漏。

superbible
2006-09-12 09:26

2分钟的事务,够长的,几乎相当于connection timeout的时间了。我猜数据库发生锁的机会更大。因为数据库操作被迫等待,所以其他的操作也得等。