I’m using v3.5.0 and plan to run an event that may include up to 500 participants and would like to ensure we won’t fall over.
We’ll be running in a AWS Lightsail environment with 8 vCPUs, 32GB RAM, and 640GB SSD (we hope this is sufficient) but concern that other aspects of the platform might be bottlenecks.
Anyone have experience/results running at this scale?
Certainly we can try to perform a test to validate, but before trying to figure out a way to load test, perhaps someone else has done that and can share results and how they validated?
CTFd configuration is dependent on more than the specs of a single server. In addition it’s recommended to split up each of the servers (web workers, database, cache) if you are expecting load.
In particiar you should look at how many workers you have configured for gunicorn, how many connections your database allows, how many connections each gunicorn worker can make (by default a max of 25 per worker), and whether you have a cache server (redis) available.
As for load testing you can use any load testing tool to exercise some endpoint that accesses the underlying database & caching server. Probably some API endpoint would be best.
Most likely, assuming you correctly configure Gunicorn’s worker count, and have a redis server in place, with that amount of resources you will probably be fine even with 500 users.
That being said, I would still recommend using our hosting service if it’s an option as we optimize everything, frequently have events with more than 500 users, and also monitor all infrastructure pretty heavily.
Appreciate the reply… for simplicity sake, going the hosting service may make most sense. All of our challenges are rather simple, from a CTF perspective. They are essentially text pages with a query that the user must investigate on a completely different SaaS platform, find the answer, and then submit the answer in the CTF site.
As such, I’d expect the base hosted would be adequate, unless simply having 500 users logged in and viewing the text pages would require the next level hosted site. Glad to discuss further. Thoughts?
Hi Larry,
There aren’t any official user limits but we monitor the amount of hits that an instance receives.
For Hosted CTFd, you can certainly start at the Basic tier and then if your traffic goes beyond a certain limit we will notify you and eventually upgrade you to the next tier. You can read more about that here: Hosted CTFd Instance Limits | CTFd Docs.
In terms of your challenges if they’re just simple text pages you can likely easily host them on our challenge deployment service or you can host them on something like AWS if they’re more complicated or something.