51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3033|回复: 7
打印 上一主题 下一主题

[原创] 使用LoadRunner进行性能测试的问题。求助!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-9-3 16:09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个脚本,同样是并发一个虚拟用户进行不间断访问。
录制第一个脚本,将登陆和注销操作放在vuser_init、vuser_end中,将查询操作放在action中,重放时发现服务器Oracle连接数不断上升,几分钟后达到最大线程数150,数据库over
录制第二个脚本,将登陆、查询、注销操作都放在action,定义为三个不同的事务,测试后发现,数据库连接数保持在20以下,但Tomcat出现out of memory错误,不能正常响应。
多次测试后,结果相同。
将两个脚本各执行一次循环后发现,查询和注销操作时间差别极小,分别为0.365 VS 0.361,0.075 VS 0.061,只有登陆操作是0.227 VS 0.354
请问如果是程序没有及时关闭数据库链接,那么为什么第二个脚本没有导致数据库连接数过多?能否根据结果断定是Tomcat的问题?又或是我录制的脚本有问题?
唉,各位辛苦一下,帮帮忙吧,bow
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-9-5 10:11:13 | 只看该作者
你的web程序的压力路线是这样的
lodrunner-〉tomcat-〉应用程序-〉数据库联接模块-〉oracle数据库
在第一种场景下,你的压力至少已经传递到了数据库联接模块,如果你的web程序中使用的web联接模块是torque(apache组织的开源项目,大多数tomcat服务器都使用它)的话,它负责创建数据库联接池,你看到的150个oracle连接数就是它创建的。你可以在torque配置文件中把联接池开得小一些,至少要少于oracle最大连接数。再试一下。
第二个场景下,你的施加在数据库联接模块的压力明显没有第一个场景大,数据库连接数为什么会下降,我从你现在提供的信息中无法得出结论。但是tomcat报出的错误,和tomcat的配置有关系,你可以查一下具体的log信息。可能是tomcat的session数过多,把tomcat搞垮了。因为你的退出脚本不能释放session,只有超时了,tomcat才会释放session.这样session在tomcat积压过多,而超过了tomcat配置文件中的配置最大数,引起的。具体的你看一下log,再看一下tomcat的配置吧
我做web测试脚本的经验:要是我的脚本运行导致了server端的什么超载或异常,那肯定不是我脚本的问题,而是各个server的问题。呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-9-6 08:49:17 | 只看该作者
谢谢指教
最喜欢最后一句话了^_^
附部分Tomcat日志:
第一种情况:
dbcon:连接数据库失败java.sql.SQLException: ORA-00020: maximum number of processes (150) exceeded

java.sql.SQLException: ORA-00020: maximum number of processes (150) exceeded
……

第二种情况:
信息: Server startup in 23859 ms
2004-9-3 10:34:15 org.apache.jasper.compiler.Compiler generateClass
严重: Javac exception
Compile failed; see the compiler error output for details.
……
2004-9-3 10:52:54 org.apache.coyote.http11.Http11Processor process
严重: Error processing request
java.lang.OutOfMemoryError
……

Tomcat版本是5.0.19,使用连接池连接数据库,没有用torque

[ Last edited by boathell on 2004-9-6 at 10:02 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-9-6 17:34:16 | 只看该作者
第一个情况:就在数据库连接池的配置文件中,把最大连接数配成低于150个
第二个情况:程序有问题,javac都报错了,你还测什么啊。找开发人员解决。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2004-9-7 16:22:05 | 只看该作者
因为压力更大的第一种情况没有出现编译出错的问题,所以才问大家
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-8-23 22:37:17 | 只看该作者
每帖必看!
看帖必回!


疯狂的刺猬
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-8-26 16:53:52 | 只看该作者
1、第2种注销是否设置了迭代?
2、第2种在action中不断的注销,已经将数据库联接释放,而第1种没有释放
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-4-16 10:45:07 | 只看该作者
同遇到,原先虚拟用户设两百都没问题,现在设个五六十个就出现这个问题了,是程序有问题吗。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-14 05:56 , Processed in 0.083224 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表