Quantcast
Viewing all articles
Browse latest Browse all 12134

Re: Understanding "mmdrv.exe"

When running the Vuser as a process, LR will create 1 process per Vuser. So if you have 10 Vusers, you will have 10 mdrv.exe processes on your box.
When running the Vuser as a thread, it creates 1 thread per Vuser. So if you have 10 Vusers, then you will have 1 process with 10 threads running inside it if the process limit is 10 threads per process else you might see multiple process based on number of threads per process limit.
For a process:
program counter - identifying next instruction to execute.
processors register set - contains register values.
text segment - contains code section.
data segment - contains variable content.
stack segment - contains temporary data such as subroutine parameters, return addresses, temporary variables
For a thread:
The text segment and the data segment are being shared by multiple threads within parent process. Each thread will have its own allocation for the rest of the module.
That is why you will be able to run more Vusers as threads than as processes since less memory resources are being taken. And context switching is faster for threads than processes.
 
By default, most of LR Vuser's is set to run as a threads unless they are not thread safe. There is, however, a trade off on running vuser as a thread. The more threads in a process, the more unstable the system becomes.
 
Some users which requires complex authentication and elevation for process to access GDI resources also won't run successfully as threads one example is QTP/UFT based GUI scripts.
 
I hope this helps!
 
Tnx!
 
 

Viewing all articles
Browse latest Browse all 12134

Trending Articles