JiveJdon Community Forums
在线110人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 开源JdonFramework及其应用案例论坛
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 19 回复 / 2 页 [ 1 2 下一页 ]  发表新帖子  回复该主题贴
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
压力测试7分钟后,开始报NullPointerException 发表: 2007年10月23日 14:45 回复
按照jDon 最简单的例子重写了原Jsp+Bean开发的程序。 使用loadRunner 进行压力测试, 目标为100/s.

初期表现非常好, 曲线特别平稳, 可是到大约7分钟-10分钟后,开始大量的NullPointerException异常抛出, 不知何故?

搜到一个类似的帖子也有相同问题,但没有答复。 是因为tomcat的链接池的连接数耗尽了吗? 那我应该怎么改?

提前谢谢老大们的帮助。
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月23日 15:19 回复
>NullPointerException异常抛出
这是出错的结果,要找到出错的原因,是在哪个页面出错,测试客户端情况如何,这些你写出来我看看,Jdon框架是经过严格压力测试的,不过也可能存在bug,所以,要看你测试用例情况
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月23日 17:38 回复
2007-10-23 17:16:55,477 - 859422 ERROR [ajp-8009-15] dao.JokeJdbcDAO - JokeJdbcDAO getJokesnull
2007-10-23 17:16:55,477 - 859422 ERROR [ajp-8009-20] interceptor.CacheInterceptor - [JdonFramework]CacheInterceptor Exception error:java.lang.NullPointerException
2007-10-23 17:16:55,477 - 859422 ERROR [ajp-8009-10] interceptor.CacheInterceptor - [JdonFramework]CacheInterceptor Exception error:java.lang.NullPointerException
2007-10-23 17:16:55,477 - 859422 ERROR [ajp-8009-15] interceptor.CacheInterceptor - [JdonFramework]CacheInterceptor Exception error:java.lang.NullPointerException
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月23日 17:43 回复
按照一个帖子提供的思路,大概是tomcat连接池里的连接耗尽了,所以在tomcat 连接池配置中设置了:
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"

情况有所改观。第一次压耗时15分钟, Pass 16378, Fail 44. 但是第二次再压15分钟,10分钟后, 大量错误仍然出现,性能也显著下降, 最后不得不停止继续加压测试。

而这时, 在用ie浏览也不行了。必须重起tomcat服务。

基本上都是7分钟,10分钟后,开始出错。 Log报上帖的信息

DB Connection找不到了?





[该贴被little1234于2007-10-23 17:45修改过]
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月23日 18:24 回复
将所有的东西重置清空,又试了一遍,

也是差不多在Pass了17475个Transaction后, 开始第一个错:
interceptor.CacheInterceptor - [JdonFramework]CacheInterceptor Exception error:java.lang.NullPointerException

后面的所有Request基本上就都是错了。 服务需要重启才能恢复。

Banq, 紧急求助! 谢谢
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 10:53 回复
又跟踪测了一次, 随着时间的增长, cpu的繁忙程度显著增长, 从一开始的15%到8分钟以后的68%, 而同期memory却没增长多少。测试结束后, 用IE一访问: 报java.lang.OutOfMemoryError: Java heap space

是因为memory的原因?
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:12 回复
使用最新JdonFramework5.1试验一下,老版本在缓存并发上是有些BUG
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:13 回复
将jvm的memory加大到了80%的物理memory。 压力测试到通过15377个transaction时,cpu突然猛增到100%。

请教老大, 性能调优该怎么进行?

banq, 急需你的指引。 谢谢!
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:19 回复
>cpu突然猛增到100%。
这是正常的,因为垃圾回收机制开始起作用,非常占据CPU,所以,我们一般尽量不要让垃圾回收机制起作用,就要通过POOL和cache控制资源,把你的主要功能测试的Service implements Poolable,这样就套上POOL,Model套上cache

还有下载最新的JdonFramework 5.1
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
回复:回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:22 回复
今天早上刚重下了jDonFrameWork重新部署了一下

我的系统是win2003 server, apache2.0.49, mod_jk2 2.0.4 tomcat6.0.14

tomcat的原始参数只改了:
Initial memory pool 1024M, Maximum memory pool 1024M, Thread stack size 2000KB (我物理内存2G)

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
maxThreads="500" minSpareThreads="50" maxSpareThreads="350"
enableLookups="false" acceptCount="100" debug="0"
connectionTimeout="30000" disableUploadTimeout="true" />

apache 从原始配置上加了:
MaxKeepAliveRequests 10000

<IfModule mpm_winnt.c>
ThreadsPerChild 1500
MaxRequestsPerChild 7000
</IfModule>

LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
<IfModule mod_cache.c>
cacheForceCompletion 100
cacheDefaultExpire 3600
cacheMaxExpire 86400
cacheLastModifiedFactor 0.1

# <IfModule mod_disk_cache.c>
# cacheEnable disk D:/httpcache/diskcache
# cacheRoot D:/httpcache/cacheroot
# cacheSize 647680
# cacheDirLength 4
# cacheDirLevels 5
# cacheGcInterval 4
# </IfModule>
<IfModule mod_mem_cache.c>
cacheEnable mem D:/httpcache/memcache
MCacheSize 8192
MCacheMaxObjectCount 10000
MCacheMinObjectSize 1
MCacheMaxObjectSize 51200
</IfModule>
</IfModule>

现在压力一段时间后,cpu100%。 哪错了?
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:回复:回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:27 回复
你最好直接测试Tomcat,分步骤来测试可能能够找出瓶颈
相关帖子:
还是内存溢出
http://www.jdon.com/jivejdon/thread/32149.html
[该贴被banq于2007-10-24 14:28修改过]
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
回复:回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:32 回复
> 把你的主要功能测试的Service implements Poolable,这样就套上POOL,Model套上cache

我的ServicePOJOImp已经implements Poolable 了, Model是extends Model的。 我看Model是 implements ModelIF which extends cacheable, Cloneable, Serializable. 所以这些我已经使用了jdon 框架,就不用自己考虑了吧??
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:回复:回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 14:35 回复
是的,动态网页不必设置Apache的缓存,我给你httpd.conf参数:
Timeout 120
KeepAlive on
MaxKeepAliveRequests 1000
KeepAliveTimeout 2
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 20
ServerLimit 2000
MaxClients 1000
MaxRequestsPerChild 10000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 10
MaxSpareThreads 20
ThreadsPerChild 60
MaxRequestsPerChild 0
</IfModule>

资源要控制,不能太大,否则CPU当然要100%
little1234

发表文章: 34
注册时间: 2007年10月04日 14:49
re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 15:55 回复
太谢谢banq了。

我用了你的apache配置。另外,按照你指引的思路仔细检查了一遍我的code, 发现有两个util class没有搁在jDon框架下, 我把它们改写成singleton 了。

刚才又测了一遍, cpu一直使用很平稳, 30%-40%之间, memory也基本没动过。原来大量出现的cacheInterceptor Exception error:java.lang.NullPointerException 在passed transactions 为24743的情况下只出现了一次。

看来I am on the right track.

继续测试研究。 谢谢banq及时雨般的支持。 :)
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:re:压力测试7分钟后,开始报NullPointerException 发表: 2007年10月24日 16:10 回复
太好了,我刚刚又更新了JdonFramework中UtilCache,15:50左右刚上线可以下载,你再下载一下,应该一次也不会出现java.lang.NullPointerException。
这个主题有 19 回复 / 2 页 [ 1 2 下一页 ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam