Good morning. Can we run a test with one million users per second? Can the core K6 do it?
one million concurrent users is a pretty tall order for any backend system, likely only achievable at FAANG scale.
Since a single k6 virtual user (VU) can execute multiple requests in parallel using
batch(), a million requests per second is possible, though still difficult to achieve because of hardware requirements. You can get an idea of how k6 compares with other load testing tools from this comparison article, though this might need updating for the latest version.
Note that this amount of traffic will generate a lot of metric data, so if you’re setting up your own distributed k6 setup, you’ll also need to scale InfluxDB to handle the load.
Currently the distributed Load Impact Cloud Execution service can handle 5K VUs on the Pro plan, but custom plans support upwards of 50K VUs. If each VU executes ~20 RPS, reaching 1 million RPS is possible under ideal conditions.
Keep in mind that while k6 performs well compared to most HTTP load testing tools, its focus is not on achieving the highest concurrent users or RPS performance of tools like wrk, but in offerring a developer-friendly UX with a real scripting language and flexible metric aggregation, all of which have considerable runtime overhead.