Running Large Tests


Overview

If you'd like to really stress test your system LoadForge is capable of generating over 250,000 simulating users at above 50,000 requests per second. We've described our test configuration below used to achieve this on our systems.

Understanding limits

Each LoadForge worker is able to generate between 10,000 and 20,000 virtual users (when using HTTPS/SSL). We allow up to 20 workers per test meaning you can ultimately run 20,000*20 = 400,000 virtual users. However, as your tests become more complex they may require more CPU to execute. For example, if you did plain HTTP it's much less work per virtual user and can scale much higher.

Going above the limit

Enterprise LoadForge clients can run millions of TPS using parallel test locations. Learn more about it here.

Warning

400,000 virtual users is a VERY large number of active users. When you think of users on a site only 10-30% of them will truly be active in the real world. Meaning 400,000 virtual users is well over a million people browsing a site at once. We are warning you because LoadForge can very easily overload your systems!

Example Test Config

Below is an example setup we use to test web server performance, it basically generates a very high number of requests to the index page of our webserver.

Users: 250,000
Rate: 3000
Workers: 15

In our locustfile we dropped the wait time down to virtually nothing:

from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(0.5, 1)

    @task(1)
    def index_page(self):
        self.client.get("/")

This configuration generates around 50,000 RPS when testing SSL connections. Plain HTTP is much easier to stress test as it uses far less CPU.