学习虚拟IP的时候,看到线程和进程的问题,不是很明白,有人能解释下么?
在之前学习虚拟IP的使用的时候,看到这么一篇博文:http://www.cnblogs.com/fnng/archive/2013/03/02/2940284.html里面提到了这句话:“使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式”Zz..
有几个问题如下:
①怎么判定我是使用本地的虚拟IP,还是用负载生成器使用虚拟IP呢?又是什么时候用线程什么时候用进程,为什么要这么区别呢?
②如果我的controller里面是配置的多个脚本呢?假如有10个脚本,每个脚本20个用户,用一个虚拟IP承受,整台机器的“资源使用”负载还是200个用户吧?只是分配给不同的ip去处理,分配给了不同的IP处理,那么它的网络流量就会得到分配了吧?
③当我生成了10个虚拟IP,并且都使用了之后,是不是就会有10个load generator的小图标在我机器上的任务栏右下角?
对于虚拟IP的使用还不是很明白,只是知道怎么制造多个虚拟IP,但是本质上,我为什么要使用虚拟IP还是不大明白,我使用虚拟IP是为了解决什么问题。。。。 我把我知道的大概说一点,进程和线程,2个占用的内存大小是有区别的,大多数情况下,使用进程方式一个Vuser会占用接近3M的内存,而线程方式的一个Vuser大概占用200K的内存。
那么你说的“使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式”,我的理解就是本地的话,为了不占用太多的内存,所以选择线程方式。而负载生成器一般是用在其他机器上用来模拟用户操作的,所以必须要用进程的方式 我把我知道的大概说一点,进程和线程,2个占用的内存大小是有区别的,大多数情况下,使用进程方式一个Vuser ...
ffwithvv 发表于 2013-6-17 14:28 http://bbs.51testing.com/images/common/back.gif
有人解析果然能理解得比较清晰....
那撇开虚拟IP的问题,我想问个关于测试时虚拟用户的线程/进程问题。
run-time-setting的设置那里有个选项是关于“虚拟用户以进程还是以线程”来运行的,默认是线程,为什么?那如果是以进程呢?
(位置在:Run-time-setting:General-Miscellaneous-Multithreading) 1、进程方式或者线程方式其实没什么大的区别,一个进程的内存空间有限(32位就不到2G),所以多进程可以解决这个问题,虚拟更多用户,因为一个用户占用一个或两个线程。一般一个线程占用内存是2M,但不知道loadrunner设置的线程空间是多少。
个人认为只是解决内存问题,对虚拟用户运行影响不大。
2、虚拟IP只是在你的网卡上配置多个IP而已,另一个国产性能测试工具kylinPET就自带IP协议栈,不需要在操作系统配置多个IP。
测试工具会根据配置自动为用户分配使用配置的IP列表(配置的IP一定要在网卡已经配置)的IP,一般是按顺序递增。这个是kylinPET的做法。
3、虚拟IP是需要先在操作系统上配置的,一个操作系统一般运行一个执行器,所以执行器配置的IP列表要对应它所在操作系统上已经配置的IP。
4、虚拟IP一般是用在那种WEB服务器有IP限制或IP识别用户的场景才可以,当然,有些网络设备可能对一个IP进行限制,这个要根据场景。
5、虚拟IP配置后,一定要保证跟服务器能互通,参照:kylinPET的文档
http://kylinpet.com/docs/kylinPET_Route.html
http://kylinpet.com/docs/kylinPET_IPConfig.html
loadrunner也一样
6、其实多IP跟loadrunner没啥关系,就是你系统有多个IP(有些人可能有多个网卡一个道理),测试工具可以配置指定哪个而已,没配置指定IP(虚拟IP)就是按系统路由自动选择IP地址。
另外,我写的另外一篇文章:http://bbs.51testing.com/thread-980437-1-1.html
希望大家一起在性能测试上进步 回复 4# linneiwei
太牛了,学习了
页:
[1]