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设置 ...
随机推荐
- WPF中的画图
1.border(边框): <Border BorderBrush="Blue" BorderThickness="0,1,1,1" Grid. ...
- [译]SQL Server 之 查询计划缓存和重编译
查询优化是一个复杂而且耗时的操作,所以SQL Server需要重用现有的查询计划.查询计划的缓存和重用在多数情况下是有益的的,但是在某些特殊的情况下,重编译一个查询计划可能能够改善性能. SELECT ...
- blend 从无到有系列之添加自定义Rectangle样式指定到资源文件
相关链接 http://www.cnblogs.com/wildfeng/archive/2012/03/30/2425248.html http://www.cnblogs.com/jv9/arch ...
- wp8 -- gameover
<phone:PhoneApplicationPage.Resources> <Storyboard x:Name="Storyboard1"> <D ...
- php怎么判断网页是电脑访问还是手机访问
.第一种方法 <?php function check_wap() { ) { ;$i<count($list);$i++){ ){ ...
- python的包和模块
python 的包即文件夹,但是必须包含_init_.py 模块就是xx.py
- Android 蓝牙 BLE 开发笔记
最近公司头戴换了一块蓝牙4.0 BLE模块,所以我们Android组要适配 BLE.Android BLE 需要 4.3 以上系统,api 还是非常简单的, 第一步就是扫描, 扫描到设备后就可以连接了 ...
- 小明A+B[HDU2096]
小明A+B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- !cocos2d ccdictionary->retain()的问题
我再a类当中生命了一个dict,将它带入到b类当中,但没有在b类初始化时retain,于是在update当中找不到了.啃爹不.记得retain()
- [Cocos2d-x For WP8]基础知识
一.重要概念 导演(CCDirector) 在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景).布景(CCLayer).角色( ...