Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

corona-school/backend-loader

Repository files navigation

Backend Load Tests

Run with artillery run (courses.yml|landing.yml|rate-limit.yml).

Tests cover potential high load scenarios:

  • courses.yml - a marketing campaign skyrockets and many users want to see the launched courses
  • landing.yml - a marketing campaign skyrockets and many users open the user area, fetching some initial data of their account
  • rate-limit.yml - a (malicious) third party runs into rate limiting while trying to scrape emails

21-05-2023

Locally test entity role improvements with own-courses.yml, before change:

http.codes.200: ................................................................ 3000
http.request_rate: ............................................................. 50/sec
http.requests: ................................................................. 3000
http.response_time:
 min: ......................................................................... 17
 max: ......................................................................... 833
 median: ...................................................................... 34.8
 p95: ......................................................................... 497.8
 p99: ......................................................................... 658.6

After change:

http.codes.200: ................................................................ 3000
http.request_rate: ............................................................. 50/sec
http.requests: ................................................................. 3000
http.response_time:
 min: ......................................................................... 8
 max: ......................................................................... 431
 median: ...................................................................... 15
 p95: ......................................................................... 25.8
 p99: ......................................................................... 135.7

28-05-2022

With 300 requests/s we can serve 18.000 requests per minute which is half of our userbase. So that seems to be performant enough. The rate limiter could be faster (i.e. by exiting before actually parsing the query), but we won't win against a DDOS anyway.

Public Courses:

errors.ETIMEDOUT: .............................................................. 1
http.codes.200: ................................................................ 23999
http.request_rate: ............................................................. 364/sec
http.requests: ................................................................. 24000
http.response_time:
 min: ......................................................................... 2
 max: ......................................................................... 1079
 median: ...................................................................... 41.7
 p95: ......................................................................... 804.5
 p99: ......................................................................... 1002.4

Landing Page (Fetching Matches and Courses for one user):

errors.ETIMEDOUT: .............................................................. 1
http.codes.200: ................................................................ 20999
http.request_rate: ............................................................. 308/sec
http.requests: ................................................................. 21000
http.response_time:
 min: ......................................................................... 15
 max: ......................................................................... 1043
 median: ...................................................................... 40.9
 p95: ......................................................................... 55.2
 p99: ......................................................................... 71.5

Rate Limit:

http.codes.200: ................................................................ 21000
http.request_rate: ............................................................. 308/sec
http.requests: ................................................................. 21000
http.response_time:
 min: ......................................................................... 15
 max: ......................................................................... 1047
 median: ...................................................................... 40
 p95: ......................................................................... 51.9
 p99: ......................................................................... 71.5

About

Load testing for the backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /