Server Specifications for more than 150.000 user enrollments

Hello all @regis @guruprasad @giovannicimolin @Remi_Bachelet I would like to make a question.

We have a tutor dockerized Open Edx installation, which is stored on a VM with 8GB RAM and a 500GB disk (with average i/o).

Can it potentially support a big amount of enrolls; With more than 150,000 users. What characteristics should it have? What server specifications and hardware infostructure;

Will this be sufficient for serving a potential 150K enrolled users, or we might experience a system downtime?

Do you think this infrastructure will be sufficient or will we need to scale up? Do you suggest some other hardware specs?

We would like to mention that the MOOC (https://mooc.edu.gr/ ) is developed for educational reasons and no profit.

Participants of MOOC will become familiar with a wide range of useful tools, resources, and methods of integrating ICT in the classroom aiming at the development of key competencies by the students and bringing an additional pedagogical value in the learning process. Participants will be members of the Greek educational community, and enrollment is expected to reach more than 100.000 users.

Thank you in advance

Hi @nadiastef,

The main thing you need to know is the average amount of concurrent users in order to be able to properly scale your instance. From the numbers you mentioned (150k enrollments), your instance is not exactly small.

Do you think this infrastructure will be sufficient or will we need to scale up? Do you suggest some other hardware specs?

Considering a vanilla Open edX deployment (not through Tutor), it’s definitively not enough.
Even considering 1% of your enrollments (1.5k/users) to be active at the same time it’s still the upper limit your infrastructure can handle.
The ideal configuration would be to:

  1. Extract the databases from your deployment (MySQL and Mongo) and use managed/easy to scale services (such as AWS RDS and MongoDB Atlas).
  2. Push the file storage to S3 or compatible service.
  3. Deploy Open edX appservers behind a load balancer with autoscaling (which automatically spawns new VMs depending on the server load). Alternatively, use Kubernetes, but there isn’t an edX supported method of doing that currently.

Will this be sufficient for serving a potential 150K enrolled users, or we might experience a system downtime?

You’ll likely suffer downtime, due to the server timing out and not being able to serve the requests in time.


I can’t say much for Tutor, as it uses a custom deployment method, but from a look at the documentation, there’s support for deploying it at a Kubernetes cluster. You’ll need to ask @regis for support and help (as the official maintainer).

If you don’t want to bother with the technicalities of setting up an Open edX instance in a scalable way, you can look at hosting providers to help you get up and running. We (OpenCraft) can help you with that.

Thanks for the detailed answer @giovannicimolin! This is also discussed on the Tutor forums: https://discuss.overhang.io/t/server-specifications-for-more-than-150-000-user-enrollments/

Thank you all very much.

@giovannicimolin thank you too, for the detailed answer. We have our own servers from https://grnet.gr/, so we won’t need another hosting provider.

I am not a system administrator so, I will give your useful info to the system admins.
Hope it goes well :slight_smile:

Thank you very much again