loadrunner跑场景的时候出现:Abnormal termination, caused by mdrv process termination

目录[-]

1.问题

loadrunner跑场景的时候出现:Abnormal termination, caused by mdrv process termination。

备注:我使用的是RTE协议录制的脚本。

2.一些资料

2.1关于mdrv.exe意外终止的可能出现情况说明

Hi, Users facing this mdrv process abnormal termination can try one of these options found from one of the LR articles. The Loadrunner vusers are run by a process called ‘mdrv.exe‘. Whenever this process encounters errors due to various reasons it may terminate. Some of the possible reasons are as follows

  1. The Host machine ( Load generator) is running too many Vusers as a result of which it system resources are being maximized. ( i.e. Consistent over 90% CPU and Memory utilization). The mdrv process does not get enough resources to process the request as a result it fails
  2. If you have Custom C coding, there is a possibility of allocated memory not being freed or memory violation errors which can lead to ‘mdrv process termination‘.
  3. Replay the script with think time.
  4. Turn off extended log when running the script in the controller.
  5. Do not use the controller itself as the loadgenerator. i.e. have a remote LoadGenerator.
  6. Introduce iteration pacing, if running more than one iteration each vuser.
  7. Open the file C:\WinNT\wlrun7.ini in a text editor, modify the entry from: AgentMaxThreadsPerDriver=50 to AgentMaxThreadsPerDriver=20 or 10
  8. Run Agent as process instead of service Launch command prompt and navigate to C:\Program Files\Mercury\Loadrunner\Launch_service\bin and run the command magentserive -remove. This will remove the agent. Now run the command magentproc -install This will install the agent as a process.
  9. Run vusers as process instead of threads.Please go to Runtime Settings > Miscellaneous > Multithreading > RunVuser as a process.

原文地址:http://loadrunner.wetpaint.com/page/Abnormal+termination,+caused+by+mdrv+process+termination

2.2 mmdrv和mdrv的异同

在LoadRunner运行脚本过程中,在任务管理器中我们可以看到有一个或多个名为“mmdrv”的进程在运行,与此同时当我们查看 LoadRunner/bin目录下的文件时还会看到一个“mdrv.exe”文件,那么mmdrv.exe和mdrv.exe有什么异同?       其实mmdrv是mdrv的封套,mmdrv通常应用于一些协议(例如 web http/html)中对内存进行优化应用,但实质上mmdrv在优化内存时会启动mdrv。二者都可以按以下命令格式来启动并运行测试脚本:            mmdrv/mdrv  -usr  <script path>       例如在windows的command窗口中首先切换目录至LoadRunner的bin目录下,然后运行以下命令:       >mmdrv -usr  D:/qa/product/Space/project/space-3.0.1/performancetest/script/firstpage/script_loadfirstpage/script_loadfirstpage.usr       这样脚本就会在后台运行(不会启动LoadRunner control界面,但可以在任务管理器中看到mmdrv进程运行情况),运行结果可查看脚本目录中的日志文件,如:output.txt,mdrv*.xxx.log(其中“*”是不同的字符标识,如Q6n、R5u;“xxx”是数字代码,如229、505)。       mmdrv和mdrv使用的更多说明可在command窗口中LoadRunner/bin目录下启动mmdrv或mdrv,可看到如下说明(注意到:不论是输入mmdrv还是输入mdrv,显示的帮助窗口都是mdrv的说明内容,这更说明了mmdrv是对mdrv的包装):

2.3 Loadrunn中的多线程与多进程

Loadrunner支持多线程环境,使用多线程的方法能使每台负载生成器运行更多的VU,但是只有支持线程安全的协议,才能使用Loadrunner的VU并发方式。

以下协议不能支持线程并发

Sybase-Dblib,Infomix,Tuxedo,and PeopleSoft-Tuxedo

当使用进程并发是,在任务管理器中有mdrv.exe的进程,比如下图,用10个VU用户并发,就会在任务管理器中出现10个mmdrv进程

如果以多线程方式并发,只会出现一个mmdrv进程,一个进程可以支持50VU的线程并发。

Loadrunner的参考帮助还说明了,如果采用多线程方式并发,Load Generator将会比多进程支持更多的用户,具体的一个VU占用内存的取值根据Loadrunner的版本不同而不同。

3.解决方案

根据上述的资料,首先关闭了扩展日志,然后加入了思考时间,并且减少了单个压力机上虚拟用户,转而由多个压力机一起运行脚本。此问题解决。

时间: 2024-10-24 01:38:48

loadrunner跑场景的时候出现:Abnormal termination, caused by mdrv process termination的相关文章

LoadRunner测试场景中添加负载生成器

如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什么是测试场景 测试场景是将测试需求结合测试用例进行转化后,用来承载实现测试用例测试目标的测试脚本的容器,对这个容器,我们可以定义出容器的规格,这个有了规格的容器的执行,就相当于测试需求被覆盖. 在LoadRunner中,测试场景在Controller中管理,一般一个场景打开后的界面如下图: 图一:场

loadrunner多场景的串行执行以及定时执行

方法一: 既然是脚本串行执行,那在场景设计中必然是要用多个脚本,要注意的是需要将Scenario Schedule中的Schedule by设置为Group的模式.然后按实际需要依次设置每个脚本的Schedule.要事先计算好每个脚本的整个执行时间,方便定义后续脚本的开始时间(设置Start Group). 方法二: 使用定时任务执行: 首先创建并设置好要跑的个测试场景,再创建一个一个批处理程序按先后顺序调用这几个个场景进行测试,最后通过Windows的定时任务设定批处理的执行时间 写一个批处理

Loadrunner:场景运行较长时间后报错:Message id [-17999] was not saved - Auto Log cache is too small to contain the message.

loadrunner运行时间较长后,跑数据过程老是失败,有如下error: Message id [-17999] was not saved - Auto Log cache is too small to contain the message. Action.c(58): 20470-byte response body for IMAP Fetch 因为脚本中默认写日志的缓存为1KB,修改该配置为999

Loadrunner:场景中添加负载生成器

场景中添加负载生成器: (1)远程机子(假设ip为192.168.134.23)开启负载生成器 开始菜单找到:LoadRunner Agent Process 开启后任务栏会显示如下图: (2)场景中工具栏点击[负载生成器/Load Generators]按钮 (3)负载生成器窗口点击[Add],进入增加页面 Name:添加计算机名称(如:loaclhost或ip) Platform:计算机的平台 Temporary directory:为临时目录, 最下面一行为:允许负载生成器参与到场景中 点

Loadrunner在场景中添加多个负载机报错:Action.c(38): Error -26488: Could not obtain information about submitted解决方法

Error -26488: Could not obtain information about submitted file "E:\.jpg": _stat32 rc=-1, errno=2 [No such file or directory]. Using an empty file 解决方法: 1.先执行一次场景,让其报错,主要是为了创建完整的C:\Users\Administrator\AppData\Local\Temp\brr_WJy.395目录下的子目录和文件 2.在

用LR12录制app,用LR11跑场景,无并发数限制,已试验过,可行!

免费使用LoadRunner对移动互联网后端服务器压力测试 一.LoadRunner简介 LoadRunner,是惠普公司研发的一款预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试. LoadRunner11是目前比较常用的版本,有免费的超级license 最高支持6.5w个并发,目前该版本对Web网站的压力测试有很好的支持,但是不支持手机app的操作脚本录制. LoadRunner12顺应移动

Loadrunner在场景中添加多个负载机报错:Action.c(38): Error -26488

Error -26488: Could not obtain information about submitted file "E:.jpg": _stat32 rc=-1, errno=2 [No such file or directory]. Using an empty file解决方法: 1.先执行一次场景,让其报错,主要是为了创建完整的C:\Users\Administrator\AppData\Local\Temp\brr_WJy.395目录下的子目录和文件2.在192

转载 loadrunner的一些问题解决

sckOutOfMemory 7 内存不足  sckInvalidPropertyValue 380 属性值不效  sckGetNotSupported 394 属性不可读  sckGetNotSupported 383 属性是只读的  sckBadState 40006 所请求的事务或请求本身的错误协议或者错误连接状态  sckInvalidArg 40014 传递给函数的参数格式不确定,或者不在指定范围内  sckSuccess 40017 成功  sckUnsupported 40018

LoadRunner性能测试执行过程的问题

LoadRunner做性能测试 从设计到分析执行 执行测试并分析调优: 测试中报错的信息解决: 1. Failed to connect to server "域名:80": [10065] No Route to Host 解决: 这种错误信息有两种情况,一是交换机堵塞,一是服务器网络堵塞或者CPU无法响应(网卡中断处理不过来了). 从服务器端检查下iptables 是否开启,看看 /proc/sys/net/ipv4/ip_conntrack_max 是多少. 2. TTP Sta