Page MenuHomeSoftware Heritage

estimate max load we can withstand for anonymous access to the API
Closed, MigratedEdits Locked

Description

We need this as a data point for T651.

Locust seems the right tool for this job, as we can use it to generate non trivial(ly cacheable) traffic patterns, including look up of existing and non existing objects.

Event Timeline

zack moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
zack moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
zack moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

I spent some time looking at locustio

  • released versions are Python2 only
  • there's an alpha that supports python3

I ran it on an external server to test it out, with a simple config that just hits a static page.

  • it maxes out one CPU without using the others
  • it randomly hits another URL ??? (I set it up with /api/, sometimes it would try to access //api ???)

I tested master-slave mode on the same machine and it seems to work, however the random URI problem is more present.

Setting aside locustio, I'll dump a random sample of valid object IDs so we can validate some actual usage patterns that would hit the database.

zack changed the task status from Open to Work in Progress.Feb 2 2017, 10:27 AM
zack added a subscriber: ardumont.

We have just done (with @olasd and @ardumont) a Locust-based test with 15 slaves.
Result: we bottleneck at ~70 requests/sec at the Apache level (the backend postgres is almost idle).