-
2009年06月12日
Loadrunner中以进程或线程创建Vuser解析
分类:Loadrunner中进程和线程的概念中讲述了一件事实:作为一个线程比一个进程运行Vuser能更有效地使用内存。Loadrunner作为一个进程运行Vuser时为每个Vuser创建一个mmdrv.exe(多线程驱动进程,Multithreaded Driver Process)/mdrv.exe或者r3vuser.exe(仿真应用程序客户端,存在于Wlrun.exe中)进程,作为一个线程运行Vuser时为每个Vuser创建一个线程。mmdrv.exe是对mdrv.exe的封装,它被用做一些协议以更好的利用内存,mmdrv.exe实际上做了一些内存优化然后调用mdrv.exe。
Loadrunner作为多线程运行Vuser时要保证客户库必须线程安全,安全是指多个线程调用同一个函数,如果是线程安全的,那么每次的结果都是正确。在多线程编程中经常需要在线程间共享资源,当多个线程同时竞争共享资源的访问权时,就可能会出现“争用状态”。线程安全的情况:
1. 接口中访问的数据都属于私有数据或者遵守可重入:可重入函数是指函数内部没有使用共享变量,使用见函数可重入性及编写规范
2. 几个接口对共享数据都是只读操作
3. 多个接口之间有共享数据,而且有读有写的话,如果设计者自己采取了同步措施,调用者不需要考虑数据同步问题
在Loadrunner 9.5安装程序中lrunner\MSI\dat\protocols目录下后缀.lrp的文件中,EnableThreads=1的协议表示Vuser是线程安全(threadsafe)的,见LRPD。
wlrun.ini中
[Agent]
AgentMaxThreadsPerDriver=50
定义了每个mmdrv.exe默认线程数。
随机文章:
LoadRunner Virtual User FootPrints 2009年06月08日LoadRunner运行原理浅析(5)-IP欺骗 2008年04月07日LoadRunner运行原理浅析(4)-网络通讯端口 2007年07月23日LoadRunner运行原理浅析(3)-监听(下) 2007年06月07日LoadRunner运行原理浅析(3)-监听(上) 2007年06月07日
收藏到:Del.icio.us
