-
CPU使用率过高
Code-29723Error: Failed to deliver a p2p message from parent to child process, reason -communication error
Code - 60990 Error: Two Way Communication Error: Function two_way_comm_post_message /two_way_comm_post_message_ex failed.在网上查了一下,造成这个问题的原因有两个:
- CPU使用率过高
- 共享内存溢出
解决方法:
修改两个配置文件。
1. {installation folder}\dat\channel_configure.dat
2. {installation folder}\launch_service\dat\channel_configure.dat
在这两个文件中的[general]部分下添加如下配置。
shared_memory_max_size=100 (修改共享内存为100MB,默认是50MB)
重新启动Controller,问题解决。
2. 内存存储空间不足
Error: Communication error: An error occurred while calling the MapViewOfFile function. (sys error message - 存储空间不足,无法处理此命令
查看资源管理器,磁盘的使用率已经达到80%以上。
解决办法:
把上面第一点提到的两个channel_configure.dat文件的配置改回去,CPU使用率过高和存储空间不足的问题都解决了。原理暂不明确,只能为出现这种
情况的时候,提供一种解决问题的方法。
- mdrv 过程终止引起的异常终止
Error:Abnormal termination, caused by mdrv process termination。
在LoadRunner运行脚本过程中,在任务管理器中我们可以看到有一个或多个名为“mmdrv”的进程在运行,与此同时当我们查看 LoadRunner/bin目录下的文件时还会看到一个“mdrv.exe”文件,mmdrv是mdrv的封套。(引用来源)
若选择进程,则每个虚拟用户产生一个“mmdrv”的进程;
若选择线程,则一个虚拟用户产生一个线程,默认50个线程合并为一个“mmdrv”进程,超出50,新增一个“mmdrv”进程。
解决办法:
关闭扩展日志,加入思考时间(think time)。
4.运行大于5000vuser时报错
Error:The load generator is currently running the maximum number of Vusers of this type
最大限制的用户数默认为5000,如果需要运行的vuser超出5000的话需要自己更改配置。
解决方法:
- 提示超时
-84819:Failed to Stop. Reason: TimeOut
这个的原因比较多:
- 设定的时间不够,在规定时间内没有完全通过所有的vuser,可以通过增加设定时间解决。
- 调整相关超时,把超时时间设置长一点
- List item
可以通过设置think time,加入思考时间解决 Timeout的问题。
- start vuser的限制
start vuser最多设置每15秒100个。
- Vuser停在Gradual Exiting状态不动
看到一篇博客说是没有释放空间导致的。可以通过在“Run time settings”里设置“Pacing”,让每次脚本迭代之间间隔一小段时间解决。(资料来源)
- 用户卡在run状态且退出时卡在gradual exiting状态
造成原因:用户线程已经卡死,一直无法完成本次迭代。
解决办法:(引用来源)
降低一个mmdrv进程的启动数量(mmdrv为loadrunner启动虚拟用户线程的进程,一个mmdrv进程默认启动50个线程)
配置详情:
进入loadrunner安装目录下\HP\LoadRunner\dat\protocols\目录,根据你脚本的协议找到对应的*.lrp文件
如:web(http/html)协议选择http.lrp文件、Mobile协议选择Mobile.lrp文件
使用文本方式打开对应的*.lrp文件
找到文件中[Vugen]这一行,在这一行下方加入MaxThreadPerProcess=20,20表示每个进程启动20个线程,根据实际情况调整,也可是试试30。