LR中Vugen的多进程与多线程(脚本命令行)
Controller使用驱动程序(如mdrv.exe或r3vuser.exe)来运行Vuser。用户可以在Controller的run-time setting中选择Vuser的运行方式:多进程/多线程。
如果将每个Vuser作为一个进程运行,那么同一驱动程序将为Vuser的每个实例多次启动(并加载)到内存中。将同一驱动程序加载到内存中会占用大量的RAM(随机访问存储器)和其他系统资源。这会限制可在任何Load Generator上运行的Vuser数。
如果将每个Vuser作为线程运行,Controller将为每50个Vuser(默认情况下)仅启动驱动程序(如mdrv.exe--LG的核心)的一个实例。此驱动程序进程/程序启动多个Vuser,每个Vuser作为一个线程运行。这些线程Vuser共享父驱动器进程的内存的段。这样就不需要多次重新加载驱动程序/进程,并节约了大量内存空间,因此能够在一个Load Generator上运行更多 Vuser。
但是任何选择都是有两面性的:选择线程方式运行Vuser会带来一些安全问题。因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,这样可能会引起多个线程的同步问题,调度不好就会出问题,如A线程要用的资源就必须等待B线程释放,而B也在等待其他资源释放才能继续。这就可能出现这样的问题:同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。
mmdrv是mdrv的封套,mmdrv通常应用于一些协议(例如web http/html)中对内存进行优化应用,但实质上mmdrv在优化内存时会启动mdrv。二者都可以按以下命令格式来启动并运行测试脚本:
mmdrv/mdrv -usr <script. path>
如:C:\Program Files (x86)\HP\LoadRunner\bin\mdrv -usr D:\PCTest\test_baidu\test_baidu.usr
D:\LoadRunner78\bin\mdrv.exe
-usr D:\LR_Tests\C\get_attribute\get_attribute.usr
-out D:\LR_Tests\C\get_attribute\out
-time 1.5
-secondsInYear 30758400
-MrsCollins Charlotte
总结:
选择线程方式运行---消耗的资源少些,可以运行的并发用户数更多;但是存在安全问题,且相对进程方式不是很稳定。
选择进程方式运行---稳定,安全,但是消耗的资源更多,可以运行的并发用户数有限。
LR中Vugen的多进程与多线程(脚本命令行)的更多相关文章
- gplaycli—— 用于从 GooglePlayStore 中下载和管理 Apk 文件的命令行工具
gplaycli-- 用于从 GooglePlayStore 中下载和管理 Apk 文件的命令行工具 这个 GooglePlay市场 中 https://play.google.com/store/a ...
- Jenkins 脚本命令行应用总结
Jenkins脚本命令行应用总结 测试环境 Jenkins 2.304 脚本命令行入口 Jenkins主页→系统管理→脚本命令行 遍历项目 例子:获取所有自由风格项目及相关项目信息 def proje ...
- 批处理脚本命令行方式关闭Windows服务
对于一些不常用的Windows Services,可以通过设置其启动类型为"禁用"而将其关闭.这种关闭方式是长期性的,电脑重启之后仍然起作用. 有时候希望在批处理脚本里通过命令行方 ...
- Python多线程同步命令行模拟进度显示
最近在一个Python(3.5)的小项目中需要用到多线程加快处理速度,同时需要显示进度,于是查了些资料找到几个实现方法:线程池的map-reduce和Queue结合线程的实现.这里简单的实例介绍一下Q ...
- pycharm中可以运行的程序,在命令行中运行提示模块不存在的问题
运行模块(包含main函数的模块),在模块开头添加以下代码,原因是pycharm运行python脚本时,会自动添加以下代码,将当前库加入到系统库目录集合中,在命令行中运行需要手动添加import os ...
- oracle 中数据库完全导入导出:cmd命令行模式(转载)
http://www.3lian.com/edu/2012/12-01/47252.html Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库 ...
- 在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>
在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序. using System.Diagnostics; 如果是dos Proces ...
- windows系统中,在当前目录下打开cmd命令行的两种方法
1.在当前路径地址栏中直接输入‘cmd’,然后回车. 2.在当前路径下,按住‘shift’键同时点击鼠标右键,点击“在此处打开Powershell”. 其实你会发现,两个命令行有很大的区别. cmd: ...
- loadrunner 运行脚本-命令行运行脚本
Loadrunner 运行脚本-命令行运行脚本 by:授客 QQ:1033553122 脚本所在目录 Run-time Settings->Additional Attributes设置 ...
随机推荐
- mysql中char,varchar,text区别总结
具体对这三种类型的说明不做阐述可以查看mysql帮助文档. char的总结: char最大长度是255字符,注意是字符数和字符集没关系.可以有默认值,尾部有空格会被截断.varchar的总结 ...
- 项目如何脱离TFS 2010的管理
在VS 里,文件->源代码管理->更改源代码管理->取消绑定.
- hdu 4165 dp
可以用卡特兰数做 以下分析转自:http://www.cnblogs.com/kevinACMer/p/3724640.html?utm_source=tuicool 这道题之前自己做的时候并没有反应 ...
- PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
在加入 发布招聘功能的时候,出现问题了,就是修改招聘信息的时候.编辑器内容不显示,只显示英文,中文不显示,以前记得开发此功能没这问题啊!然后各种原因找不出,没办法,从编辑器函数入手,一步一步查,查到 ...
- Hark的数据结构与算法练习之基数排序
算法说明 基数排序是基于计数排序的,所以看这个之前要先看一下计数排序对于理解基数排序是很有帮助的(发现计数和基数的音节几乎一致啊).这个我有写,请点击. OK,现在你肯定已经熟悉了计数排序,那么我就来 ...
- loadrunner关联边界乱码
问题现象: 如上图中的我想关联 <ins class="curmarker" id="cur2494"></ins><ins cl ...
- RequiredFieldValidator 控件 CompareValidator 控件
RequiredFieldValidator 控件 验证关联控件非空 ControlToValidate 属性用来关联被验证控件 ErrorMEssage 触发控件后显示的错误信息 CompareVa ...
- 简单几何(凸包) POJ 1113 Wall
题目传送门 题意:求最短路线,使得线上任意一点离城堡至少L距离 分析:先求凸包,答案 = 凸包的长度 + 以L为半径的圆的周长 /*********************************** ...
- 递推DP URAL 1260 Nudnik Photographer
题目传送门 /* 递推DP: dp[i] 表示放i的方案数,最后累加前n-2的数字的方案数 */ #include <cstdio> #include <algorithm> ...
- CocoaPods 安装的第三方删除
CocoaPods 第三方删除 我们使用CocoaPods非常高效地将一些第三方类库导入到我们的项目中,难免会出现一些错误,这时应怎么删除它呢?以下方法会帮你解决这个问题 打开Build Phases ...