LR里组 vusers 进程 线程的关系

上一篇 / 下一篇  2007-09-17 10:39:15 / 个人分类:性能测试(收集)

如果是线程安全的协议,在一个组(进程)里并发多个vusers,可以不用开那么进程。这可以减少系统的开销。
  如果不是线程安全的协议,我们需要开多个进程来处理Vusers。这样势必增加系统的开销。
  其实对现在的硬件来说,基本上客户端成为瓶颈的机会不是很大。(除非这公司太穷了)
^_^

  这里我做了个实验,画了一张表,来形象的说明一下组/vusers/线程/进程的关系。
注:这里,我假定的是10vsuers:
 
设置vusers按进程还是线程运行
Vusers(个/组)
组(个)
mmdrv.exe中的线程数(个/组)
Mmdrv.exe进程(个)
平均每个进程占的内存(k)
Mmdrv.exe占有内存总数(k)
线程
10
12
7,500
7,500
线程
10
10
5,150
51,500
进程
10
10
4,676
46,760
进程
10
10
5,150
51,500
  我这里脚本都是一样的。
  大家如果自己做实验,内存可能会不一样。
  在表里,我们可以很清楚的看到,进程多的时候,占用内存肯定是多的。
  如果在同一组里开多个线程,占用内存就少得多。
  我们还要注意一个细节就是在用线程来运行vusers的时候,每个进程中会多出几个线程来。
  这多出来的很个进程在做什么,我没有查它的API,我想可能是维护进程之间的运行。
 
  很显然的,还有个问题,就是哪个压力更大。
  这个问题也有些人在问,我想这个应该是很明显的吧。
  其实对服务器来说,只要是10个用户都在正常工作,而速度不会受到本地硬件的影响。
  对服务器的压力是一样的。
  这么来思考:
  假设来说。
  我们是从客户端来发数据库的,10个用户,如果一秒钟发20个数据包。
  那对服务器来说,收到的数据包都是一样多的。所以压力也会是一样的。
 那会不会存在在同一个进程里开10个线程速度更慢呢。
  这个,我以为不会的。
  所以我认为压力是一样的。

TAG:

 

评分:0

我来说两句

Open Toolbar