|
这个主题共有 19 回复 / 2 页 [
1 2
下一页
]
|
|
|
|
|
|
压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月23日 14:45
|
回复
|
|
按照jDon 最简单的例子重写了原Jsp+Bean开发的程序。 使用loadRunner 进行压力测试, 目标为100/s.
初期表现非常好, 曲线特别平稳, 可是到大约7分钟-10分钟后,开始大量的NullPointerException异常抛出, 不知何故?
搜到一个类似的帖子也有相同问题,但没有答复。 是因为tomcat的链接池的连接数耗尽了吗? 那我应该怎么改?
提前谢谢老大们的帮助。
|
|
|
|
|
|
回复:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月23日 15:19
|
回复
|
|
>NullPointerException异常抛出 这是出错的结果,要找到出错的原因,是在哪个页面出错,测试客户端情况如何,这些你写出来我看看,Jdon框架是经过严格压力测试的,不过也可能存在bug,所以,要看你测试用例情况
|
|
|
|
|
|
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
|
|
|
|
|
|
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修改过]
|
|
|
|
|
|
re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月23日 18:24
|
回复
|
|
将所有的东西重置清空,又试了一遍,
也是差不多在Pass了17475个Transaction后, 开始第一个错: interceptor.CacheInterceptor - [JdonFramework]CacheInterceptor Exception error:java.lang.NullPointerException
后面的所有Request基本上就都是错了。 服务需要重启才能恢复。
Banq, 紧急求助! 谢谢
|
|
|
|
|
|
re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月24日 10:53
|
回复
|
|
又跟踪测了一次, 随着时间的增长, cpu的繁忙程度显著增长, 从一开始的15%到8分钟以后的68%, 而同期memory却没增长多少。测试结束后, 用IE一访问: 报java.lang.OutOfMemoryError: Java heap space
是因为memory的原因?
|
|
|
|
|
|
回复:re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月24日 14:12
|
回复
|
|
|
使用最新JdonFramework5.1试验一下,老版本在缓存并发上是有些BUG
|
|
|
|
|
|
re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月24日 14:13
|
回复
|
|
将jvm的memory加大到了80%的物理memory。 压力测试到通过15377个transaction时,cpu突然猛增到100%。
请教老大, 性能调优该怎么进行?
banq, 急需你的指引。 谢谢!
|
|
|
|
|
|
回复:re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月24日 14:19
|
回复
|
|
>cpu突然猛增到100%。 这是正常的,因为垃圾回收机制开始起作用,非常占据CPU,所以,我们一般尽量不要让垃圾回收机制起作用,就要通过POOL和cache控制资源,把你的主要功能测试的Service implements Poolable,这样就套上POOL,Model套上cache。
还有下载最新的JdonFramework 5.1
|
|
|
|
|
|
回复:回复: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%。 哪错了?
|
|
|
|
|
|
回复:回复:回复:re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月24日 14:27
|
回复
|
|
|
|
|
|
|
|
回复:回复: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 框架,就不用自己考虑了吧??
|
|
|
|
|
|
回复:回复:回复: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%
|
|
|
|
|
|
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及时雨般的支持。 :)
|
|
|
|
|
|
回复:re:压力测试7分钟后,开始报NullPointerException
|
发表: 2007年10月24日 16:10
|
回复
|
|
|
太好了,我刚刚又更新了JdonFramework中UtilCache,15:50左右刚上线可以下载,你再下载一下,应该一次也不会出现java.lang.NullPointerException。
|
|
|
|
|
|
这个主题有 19 回复 / 2 页 [
1 2
下一页
]
|
|
|