zoukankan      html  css  js  c++  java
  • LR中Vugen的多进程与多线程(脚本命令行)

        Controller使用驱动程序(如mdrv.exe或r3vuser.exe)来运行Vuser。用户可以在Controller的run-time setting中选择Vuser的运行方式:多进程/多线程

        如果将每个Vuser作为一个进程运行,那么同一驱动程序将为Vuser的每个实例多次启动(并加载)到内存中。将同一驱动程序加载到内存中会占用大量的RAM(随机访问存储器)和其他系统资源。这会限制可在任何Load Generator上运行的Vuser数。

        如果将每个Vuser作为线程运行,Controller将为每50个Vuser(默认情况下)仅启动驱动程序(如mdrv.exe--LG的核心)的一个实例。此驱动程序进程/程序启动多个Vuser,每个Vuser作为一个线程运行。这些线程Vuser共享父驱动器进程的内存的段。这样就不需要多次重新加载驱动程序/进程,并节约了大量内存空间,因此能够在一个Load Generator上运行更多 Vuser。

        但是任何选择都是有两面性的:选择线程方式运行Vuser会带来一些安全问题。因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,这样可能会引起多个线程的同步问题,调度不好就会出问题,如A线程要用的资源就必须等待B线程释放,而B也在等待其他资源释放才能继续。这就可能出现这样的问题:同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。

        mmdrv是mdrv的封套,mmdrv通常应用于一些协议(例如web http/html)中对内存进行优化应用,但实质上mmdrv在优化内存时会启动mdrv。二者都可以按以下命令格式来启动并运行测试脚本:           

      mmdrv/mdrv -usr <script. path> 
    
       如:C:Program Files (x86)HPLoadRunnerinmdrv -usr  D:PCTest	est_baidu	est_baidu.usr
    
       D:LoadRunner78inmdrv.exe
    
       -usr D:LR_TestsCget_attributeget_attribute.usr
    
       -out D:LR_TestsCget_attributeout
    
       -time 1.5
    
       -secondsInYear 30758400
    
       -MrsCollins Charlotte 

    总结:

    选择线程方式运行---消耗的资源少些,可以运行的并发用户数更多;但是存在安全问题,且相对进程方式不是很稳定。

    选择进程方式运行---稳定,安全,但是消耗的资源更多,可以运行的并发用户数有限。

  • 相关阅读:
    切记ajax中要带上AntiForgeryToken防止CSRF攻击
    研究 Javascript的&&和||的另类用法
    在Javascript中使用String.startsWith和endsWith
    spring mvc的web controller层读不到nacos配置的解决办法
    阿米在日本工作生活趣事(3)
    Python编程从入门到实践(5)学习笔记-用户输入和while
    Python编程从入门到实践(4)学习笔记-if语句,字典
    Python编程从入门到实践(3)学习笔记-列表,切片,元组
    Python编程从入门到实践(2)学习笔记
    【Maven问题】 错误: 程序包xxx 不存在
  • 原文地址:https://www.cnblogs.com/yezhaohui/p/3450795.html
Copyright © 2011-2022 走看看