Re:K6: Like unit testing, for performance
by grafelic on Saturday November 28, 2020 @01:53AM
(#25235838)
what is the max number of VUS you guys have run through it?
[ Parent
| on HN ]
Re:K6: Like unit testing, for performance
by na-- on Saturday November 28, 2020 @03:41AM
(#25236279)
This very much depends on your available hardware and the complexity of the load test. Following the advice in https://k6.io/docs/testing-guides/running-large-tests, and having a beefy load generation machine and network, you should be able to run many thousands of VUs on a single instance pretty comfortably. How many thousands precisely depends on a lot of factors... :)
Re:K6: Like unit testing, for performance
by sniku on Saturday November 28, 2020 @04:16AM
(#25236448)
The most I started on a single machine was about 50.000 VUs. Back then, the limit was in available sockets. k6 now has support for multiple source IPs, so that limit has been effectively removed, and more VUs should be possible.
On the `k6 cloud` side, we have executed 500k+ VUs. The most RPS I achieved with k6 was 4 791 928 (~4.8 million requests per second). That test lasted for 6 min and generated 1.5 billion requests in total.
More is possible, but we didn't push further.
Source: I'm one of the guys behind k6.
Re:K6: Like unit testing, for performance
by grafelic on Saturday November 28, 2020 @07:12AM
(#25237093)
Interesting. How did you collect metrics for reports when running that many VUS? In a recent attempt, influxdb quickly became the bottleneck for us when testing with around 5000 VUS. Is there some best practices outlined somewhere, or which you could outline here, on how to collect metrics for large runs?
Re:K6: Like unit testing, for performance
by sniku on Saturday November 28, 2020 @08:02AM
(#25237267)
For that local test, I relied on the k6 CLI output.
Influxdb would most likely not be able to handle this amount of data. We are looking to add a TimescaleDB output to enable metric collection beyond what Influx is capable of. There's a working example here if you want to give it a shot ahead of the official release https://github.com/loadimpact/open-source-load-testing-stack
Local execution with cloud output is also possible (k6 run -o cloud), but that's not free.
To give you some idea of what k6 cloud can do, here are screenshots of a few large scale tests https://imgur.com/a/NtXsc1a
1. 500 000 VU test run with 1.5B requests
2. 12h soak test run with 5k VUs
3. 48h soak test, with 5k VUs
4. 20k VU local test (with -o cloud)