title: Interpretation of results for a simple Gatling scenario with 1 user and reachRps 20000
body: <hr>
  
  <h2>Premises</h2>
  
  <ol>
  <li>Rest API in scala / spray</li>
  <li>Simple method that always returns OK</li>
  <li>I try to achieve an average of 20k requests per second</li>
  <li>Both machines (tester &amp; tested) well configured (EC2 dedicated servers, each one with only its API &amp; Gatling, configuration files
  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)</li>
  </ol>
  
  <hr>
  
  <p>This is my simple test file scenario, just 1 user:</p>
  
  <pre><code>    setUp(scn.inject(constantUsersPerSec(1) during(60 seconds)))
      .throttle(
                //reachRps(20000) in (60 seconds),
                //holdFor(1 minute)
                //,
                jumpToRps(20000),
                holdFor(1 minutes)
               )
      .protocols(httpConf)
  </code></pre>
  
  <p>I try to achieve 20k rqs (maximum) in 60sec or jump directly to 20k and maintain there along 1 minute.</p>
  
  <p>This is always my results after executing Gatling script:</p>
  
  <pre>
  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%)
  
  </pre>
  
  <p>I don't understand what means exactly these results... or, perhaps, I'm not configuring the right scenario for my goal.</p>
  
  <p>I tried with several scenaries:</p>
  
  <pre><code>    //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)
  </code></pre>
  
  <p>So, I don't know how to configure my scala test file for, simply, getting a value like that:</p>
  
  <pre>
  > mean requests/sec                                  <b>20000</b> (OK=20000  KO=-     )
  </pre>