Giter Club home page Giter Club logo

Comments (11)

hrj avatar hrj commented on July 28, 2024 1

This is great! Tons of things to analyse.

  • Can you upload the test script to gist.github.com?
  • Let's fix on 1000 concurrent users @ 100 users/second for now.
  • We need to ensure that each test begins with a clean and consistent state. For example, by removing the database, and populating it fresh every time. Can you write a script for the test? It should roughly do the following:
rm << captcha database files >>
sbt runMain << classNameForPopulatingDB >>
run locust
  • Before we analyse the performance, we need to address the failures. For the most common failure, can you raise a separate issue in this repo, with the stack trace and other details included?

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

Will be using locust for load testing.

from lc-core.

hrj avatar hrj commented on July 28, 2024

Looks good. You could simulate a swarm of users that:

  1. Get a captcha challenge
  2. Submit a solution for it after 5 to 10 seconds

Let's see how many concurrent uses can do that.

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

Load test data for 1000 concurrent users spawning at a rate of 10 users/second.

Statistics for the test
Stats-1000-10

Total requests per second
Total-request-per-second-1000-10

Response times
Response-times-1000-10

Number of users
Number-of-users-1000-10

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

Load test data for 1000 concurrent users spawning at a rate of 100 users/second.

Statistics for the test
Stats-1000-100

Total requests per second
Total-requests-per-second-1000-100

Response times
Response-times-1000-100

Number of users
Number-of-users-1000-100

Failures
Failures-1000-100

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

Load test data for 2000 concurrent users spawning at a rate of 10 users/second.

Statistics for the test
Stats-2000-10

Total requests per second
Total-requests-per-second-2000-10

Response times
Response-times-2000-10

Number of users
Number-of-users-2000-10

Failures
Failures-2000-10

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

I also observed this unusual spike in failures for a few Milliseconds when the test starts.
Failure-anamoly
From 17:34:15 to 17:34:30

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

Load test data for 1000 concurrent users spawning at a rate of 10 users/second after DB upgrade and DB sync

Statistics for the test
Stats-1000-10-new

Total requests per second
Total-requests-per-second-1000-10-new

Response times
Response-times-1000-10-new

Number of users
Number-of-users-1000-10-new

Failures
Failures-1000-10-new

from lc-core.

rr83019 avatar rr83019 commented on July 28, 2024

Load test data for 1000 concurrent users spawning at a rate of 100 users/second after DB upgrade and DB sync

Statistics for the test
Stats-1000-100-new

Total requests per second
Total-reqest-per-second-1000-100-new

Response times
Response-times-1000-100-new

Number of users
Number-of-users-1000-100-new

Failures
Failures-1000-100-new

Note: The majority of failures on /captcha endpoint are because of the rate limiter. It gives back a 400 error when the limit is reached, as seen in failures.

from lc-core.

hrj avatar hrj commented on July 28, 2024

Performance results for CRUD app

Config

  • OpenJDK 11
  • locust 100 users (each user contributes about 31 requests per second)
  • Each locust user calls create then increment : read is in the ratio 1 : 8
  • Xodus 1.3.232
  • h2-1.4.200.jar
  • Locust and CRUD server running on the same DO droplet
  • application compiled and assembled, then run standalone

ulimit

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3832
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 40000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3832
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

RPS

For Xodus, peak RPS is 2150
For H2, peak RPS is 2400

Response times were sub 1ms for both

from lc-core.

hrj avatar hrj commented on July 28, 2024

After multiple tests, we decided to retain H2 as the database, and added some tweaks to the schema.

from lc-core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.