higkoo 发表于 2008-9-22 20:49:12

LoadRunner浏览器仿真中“每次迭代模拟一个新用户”功能的讨论。

配置 Internet 运行时设置 -->设置浏览器仿真属性 --> 每次迭代模拟一个新用户 。

 它还有一个子选项 “每次迭代清除缓存”。

据说取消“每次迭代模拟一个新用户”可以减轻客户端压力,在模拟高负载时取消。

  做了个实验,选中“每次迭代模拟一个新用户”,模拟10个用户不停向服务器发送请求。
使用 netstat -na 查看客户端有很多未关闭的连接,服务器未关闭的连接在20~30之间。
  取消选中“每次迭代模拟一个新用户”,模拟10个用户不停向服务器发送请求。
使用 netstat -na 查看客户端就10个与服务器的连接,服务器未关闭的连接很多。

有朋友能详细解释一下这两个选项的作用吗?

云层 发表于 2008-9-23 10:52:14

从原理来说比较简单,就是当你的一次interation触发后,不在读本地cache重新读取,这样我们会对服务器端的压力提升,因为我们需要更多次的下载图片了

关于你的试验结果是正确的,因为你每次新的interation其实就是某个vuser换了一台电脑做同样的操作,你在脚本中又没有做Logout或者服务器没有踢掉多人同账户连接的规则,自然就会出现大量未关闭连接的情况了,想要减少这个问题,那么把session设置的短一点就行了
而如果取消的话,那么10个用户反复在用相同的session操作,那么不应该有额外的连接出来了

higkoo 发表于 2008-9-23 14:04:43

回复 2# 云层 的帖子

有两点疑问:
1. 不在读本地cache重新读取
你的意思说取消cache,则虚拟用户不会再读取cache。
那每次访问都会下载图片或接受服务器的返回,每次迭代这些些内容都将被覆盖?

2. 么10个用户反复在用相同的session操作

session是对用户而言,我实验的这个系统是没有用户这个概念的,非常简单的操作:
譬如,你在URL里输入一个参数值,服务器返回这个值在数据库里是否存在,仅此而已。

确实是取消了“每次迭代模拟一个新用户”后,服务器的端口多出很多。

云层 发表于 2008-9-23 14:32:49

图片下载不是每次都进行的,现在都有缓存和延迟刷新的规则吧,如果你不清cache,那么再次访问图片应该不下载

对于后面的来说,也许是web服务器的识别策略了,也许服务器还会暂时保存连接信息吧

lijian422202 发表于 2008-9-23 15:30:24

你可以看replay.log,当用户第一次进入页面时会把URL相应的源都down下来,比如JPG,CSS,JS等,如果你勾选了“模拟浏览器缓存”,在这个用户同一次跌代中的后续操作中就会直接使用已经在缓存的源,如果没有的才会重新DOWNLOAD;如果没有勾选“模拟浏览器缓存”,那就每次都会DOWNLOAD;
如果在你勾选了“模拟浏览器缓存”的情况下,又同时勾选了“每次迭代模拟一个新用户”,在同一次跌代时,上面已经说过,但不同的跌代时,又会去下载一次源;如果在你勾选了“模拟浏览器缓存”的情况下,没有选了“每次迭代模拟一个新用户”,那就是所有的源只会下载一次,之后全部读缓存; 以上所造成的hit per second看的很明显:
勾选了“模拟浏览器缓存”的情况下,又同时勾选了“每次迭代模拟一个新用户”单用户的情况下表现为,波浪起伏型;
勾选了“模拟浏览器缓存”的情况下,没有选了“每次迭代模拟一个新用户”的表现为,波浪之后的平静。。。

higkoo 发表于 2008-9-25 13:52:33

回复 5# 的帖子

嗯,讲述得很好!

翔龙在天 发表于 2012-3-31 14:03:38

回复 5# lijian422202

讲得非常棒。
页: [1]
查看完整版本: LoadRunner浏览器仿真中“每次迭代模拟一个新用户”功能的讨论。