51Testing软件测试论坛

标题: 客户端CPU与可支持最大并发数的关系 [打印本页]

作者: Polaris_Du    时间: 2008-2-14 10:51
标题: 客户端CPU与可支持最大并发数的关系
我在做性能测试的时候发现,我的电脑(配置Pentiem(R) D CPU2.80GHZ,512MB Memory,80G DISK)在运行脚本的时候,当Vuser加到5个的时候,CPU就有可能在运行过程中的某一时刻达到了85%以上,也就是说,如果要再在我电脑上增加虚拟用户的话,那测试结果就会失真,很多的请求是在我运行LR工具的电脑上就产生了队列,是对我运行LR的电脑产生了压力,而非对服务器产生压力。
        这样的话,如果我要做100人并发的话,那就要找20台我这样的电脑,然后通过Controller进行集中控制,然后运行脚本。这无非是加大了硬件的投入。
        各位同仁不知道在工作中是否出现了这样的问题,特别是做网站的性能测试,并且我在想,那如果网站要做上千人的并发测试的话,那需要多少的硬件投入啊~

PS:我使用的是LR8.0,以线程方式产生虚拟用户。
作者: anry    时间: 2008-2-14 11:11
我也有这个同样的问题,那位大侠帮忙解决一下!
作者: cuizhihui    时间: 2008-2-14 11:22
并发用户时,应该不会对本机CPU占用产生压力啊。
可能,你并发用户时,从本地上传文件给服务器,或者其他类似操作,才会给本机产生压力。其他情况应该不会的吧。
作者: Polaris_Du    时间: 2008-2-14 11:42
使用的是Web Services协议,脚本中也只有sqlselect,update等操作。
脚本是新增动作,很简单,没有添加附件什么的。
但是由于程序比较复杂,虽然是1个新增,但对多张表进行了操作,所以每次运行到这里的时候,CPU占用都比较高,并发数设置大了以后,这些sqlselect请求就在CPU这里排队了,然后测试结果中的事务响应时间等结果就严重失真了。
是被测试的软件问题呢?还是我使用LR的问题?

[ 本帖最后由 Polaris_Du 于 2008-2-14 11:56 编辑 ]
作者: beiyu95    时间: 2008-2-14 12:01
当涉及到的程序比较复杂的时候,比如SAP应用或其他客户端的应用,普通PC做load generator的时候,能够产生的用户数非常少。这个时候一般应该考虑使用小型机或其他高配置的机器来做负载发生器。
作者: woodme0000    时间: 2008-2-14 12:16
我也出现过这种问题,我重新安装操作系统解决的
另外诚如楼上所说,如果你的操作需要加载本地资源,那你只能针对本机再进行 硬件或者软件优化了
作者: Polaris_Du    时间: 2008-2-14 12:17
是的,我用过小机来做负载发生器,结果是相同的脚本,并发用户可以达到25个。
还有个问题,是什么原因导致了CPU占用过大,能够产生的用户数非常少。而网站的测试却可以以几倍的并发来进行测试。
作者: 正道    时间: 2008-2-14 17:10
原帖由 Polaris_Du 于 2008-2-14 11:42 发表
使用的是Web Services协议,脚本中也只有sqlselect,update等操作。
脚本是新增动作,很简单,没有添加附件什么的。
但是由于程序比较复杂,虽然是1个新增,但对多张表进行了操作,所以每次运行到这里的时候,CPU占 ...


sqlselect这个应该和客户端无关吧。对web照理来说,数据库操作不会在客户机上的,如果数据库也在你的本机上进行操作,那么Cpu当然会占用很多的资源罗。
作者: njglman    时间: 2008-2-14 17:21
标题: 能说说你的系统架构吗?
如果你的数据库服务器和测试机安装在一起的话,务必会造成资源的占用,还有要保证单独的测试环境,卸载不必要的资源,提高测试机的配置,优化程序
作者: Polaris_Du    时间: 2008-2-15 11:12
问题就在于数据库服务器,应用服务器,负载生成器都在独立的电脑上,不会有这样的干扰。
作者: sayusayme    时间: 2008-2-15 13:36
关注中
作者: Polaris_Du    时间: 2008-2-18 14:28
沉的太下面的,手动置顶
是什么原因导致应用程序的测试过程中,CPU占用过大,能够产生的虚拟用户数非常少。而网站的测试却可以以几倍的并发来进行测试。
作者: otsoft    时间: 2008-2-25 13:53
标题: good question
关注中!!!!!!!!!
作者: bug_no2    时间: 2008-2-25 16:02
一个可能是测试机的问题
一个可能是系统本身的问题,不能支持大的并发数
一个可能是系统对数据库的访问处理方式问题
要不然就是你机子中毒了,
作者: 大漠飞鹰    时间: 2008-2-25 17:38
负载生成器产生负载的过程就是在后台启动进程或者线程运行脚本,因此是肯定要占用系统资源,例如cpu,而占用的多少主要取决于vuser的数量和协议的类别。
不同的协议占用的资源是不同的,HTTP相对而言占用的资料较少,而ajax这类协议占用的资料就多了,2.8的最多也就能跑了30个。
负载生成器高负荷的状况下执行脚本,会严重影响测试结果,测试时需要特别注意。
作者: liangjz    时间: 2008-2-25 22:16
mi knowledge base有文章专门介绍协议load generator机器占用内存的文章。

我们用 dell 1850( 6G内存,2颗物理CPU) 就能把满足 每秒100 tps 以上的网站view 操作 了
作者: zhybing    时间: 2008-2-26 17:06
估计是数据库服务器那儿出了问题,因为你的机器不是CPU一直过高,而是到了某个操作CPU过高,仔细看看CPU过高的时候,作的什么操作




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2