Controller运行方式
当Controller运行场景任务时,在任务管理器出现一个“lr_bridge”进程,它就是联系Controller和Generator的桥梁,Controller的指令就是通过它来下达到Generator。而Load Generator接到运行指令,会启动一个mdrv.exe进程,以多进程/多线程方式调用运行脚本文件。
多进程/多线程方式的区别
Controller将使用驱动程序mdrv运行Vuser。如果按进程方式运行每个Vuser,则对于每个Vuser实例,都将启动一个mdrv进程。多个mdrv进程会占大量内存及其他系统资源;如果选择按线程方式运行,默认情况Controller为每50个Vuser仅启动一个mdrv.exe进程(可计算出需要多少机器来运行LoadRunner),而每个Vuser都按线程运行,这些线程Vuser将共享父进程的内存段,从而节省了大量资源,并运行更多的Vuser
多线程运行的缺点:存在线程安全问题
因为线程的资源从进程资源中分配出来,因此同一个进程中的多个线程会出现共享内存空间,这样可能会引起多个线程同步问题,调度不好就会出现问题。(有时候可以换成进程运行方式试一试)