问题:运行场景后,之前运行的好好的Vuser突然全部没有init,而是卡在pending上了,并且过了一段时间提示“Abnormal termination, caused by mdrv process termination”,找下了,网上的答案如下:
转自:http://loadrunner.wetpaint.com/page/Abnormal+termination,+caused+by+mdrv+process+termination
转自:http://loadrunner.wetpaint.com/page/Abnormal+termination,+caused+by+mdrv+process+termination
f 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
- 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
- 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'.
- Replay the script with think time.
- Turn off extended log when running the script in the controller.
- Do not use the controller itself as the loadgenerator. i.e. have a remote LoadGenerator.
- Introduce iteration pacing, if running more than one iteration each vuser.
- Open the file C:\WinNT\wlrun7.ini in a text editor, modify the entry from: AgentMaxThreadsPerDriver=50 to AgentMaxThreadsPerDriver=20 or 10
- 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.
- Run vusers as process instead of threads.Please go to Runtime Settings > Miscellaneous > Multithreading > RunVuser as a process.
这个是网上搜索得来的结果,但是把线程改进程的思路并不适用我们的运行场景。
另一种解决方式:
看了下Tomcat那边的情况,发现有很多session占用,清除了一下,重新运行就好了.
可是问题又来了
之前测试过很多轮,万级的vuser,都没有出现这种情况。
具体原因还需要分析