解释1个用户和达到20000

时间:2015-08-12 09:33:40

标签: scala spray gatling

处所

  1. scala / spray中的Rest API
  2. 总是返回OK的简单方法
  3. 我尝试平均每秒达到20,000次请求
  4. 两台机器(测试仪和测试仪)配置良好(EC2专用服务器,每台服务器只有其API& Gatling,配置文件 sudo sysctl -w net.ipv4.ip_local_port_range =“1025 65535” echo 300000 | sudo tee / proc / sys / fs / nr_open echo 300000 | sudo tee / proc / sys / fs / file-max,/ etc / security / limits.conf,ulimit -a - > 65535)
  5. 这是我的简单测试文件场景,只有一个用户:

        setUp(scn.inject(constantUsersPerSec(1) during(60 seconds)))
        .throttle(
                  //reachRps(20000) in (60 seconds),
                  //holdFor(1 minute)
                  //,
                  jumpToRps(20000),
                  holdFor(1 minutes)
                 )
        .protocols(httpConf)
    

    我尝试在60秒内达到20k rqs(最大值)或直接跳到20k并在1分钟内保持不变。

    执行Gatling脚本后,这始终是我的结果:

    Simulation finished
    Parsing log file(s)...
    Parsing log file(s) done
    Generating reports...
    
    ================================================================================
    ---- Global Information --------------------------------------------------------
    > request count                                         60 (OK=60     KO=0     )
    > min response time                                      0 (OK=0      KO=-     )
    > max response time                                      2 (OK=2      KO=-     )
    > mean response time                                     1 (OK=1      KO=-     )
    > std deviation                                          0 (OK=0      KO=-     )
    > response time 50th percentile                          1 (OK=1      KO=-     )
    > response time 75th percentile                          2 (OK=2      KO=-     )
    > mean requests/sec                                  1.017 (OK=1.017  KO=-     )
    ---- Response Time Distribution ------------------------------------------------
    > t  800 ms  t > 1200 ms                                            0 (  0%)
    > failed                                                 0 (  0%)
    
    

    我不明白究竟是什么意味着这些结果...或者,或许,我没有为我的目标配置正确的方案。

    我试过几个场景:

        //setUp(scn.inject(atOnceUsers(20000)).protocols(httpConf))         
        //setUp(scn.inject(Users(200000).ramp(10)).protocols(httpConf))
        //setUp(scn.inject(constantUsersPerSec(20000) during(1 seconds)).protocols(httpConf))           
        //setUp(scn.inject(constantUsersPerSec(20000) during(1 seconds))).protocols(httpConf)
       //setUp(scn.inject(rampUsers(1500) over (60 seconds)))
       //setUp(scn.inject(atOnceUsers(50000)))
       //      .throttle(jumpToRps(50000),
       //                holdFor(1 minutes))
       //      .protocols(httpConf)
    
       setUp(scn.inject(constantUsersPerSec(1000) during(30 seconds)))
        .throttle(
                  reachRps(20000) in (30 seconds),
                  holdFor(1 minute)
                  //,
                  //jumpToRps(20000),
                  //holdFor(1 minutes)  
                 )
        .protocols(httpConf)
    

    所以,我不知道如何配置我的scala测试文件,只需获取类似的值:

    > mean requests/sec                                  20000 (OK=20000  KO=-     )
    

1 个答案:

答案 0 :(得分:0)

你没有得到油门。来自documentation

  

您仍然需要在方案级别注入用户。节流尝试   确保给定方案及其目标的吞吐量   注射配置文件(用户数量和持续时间)。这是一个瓶颈,   即上限。如果您没有提供足够的用户,则无法覆盖   油门。如果您的注射持续时间低于油门,那么   所有用户完成后,模拟将停止。如果你的   注射持续时间长于油门,模拟将停止   油门结束。

如果每秒只注射1个用户,你怎么能达到20000 rps?