Moodle Site for 1000 concurrent users

Posted February 21, 2020 20.1k views
DigitalOcean Managed MySQL DatabaseDigitalOcean Managed Load BalancersDigitalOcean Accounts

I am planning to install Moodle (php application) with MySql database. At present i have it on a VPS with 8GB Ram 6 CPU centos but it is not efficiently catering the need of even 100 concurrent users.
What way I can use DigitalOcean to cater the need for 1000 concurrent users who may take quiz at same time for online examination. There may not be any memory intensive multimedia but simple online quiz with multiple choice text/image questions.
Please provide me a hardward architecture approach I can use to cater my needs.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
4 answers

1000 users to do a quiz on Moodle is a huge amount. I have worked on Moodle platforms with 1,000,000 users in Spain and never did 1000 users ever simultaneously do a quiz. That said, Moodle quizzes are very server intensive and do require a lot of server resources.

Recently we were having issues with Moodle quizzes with around 800 concurrent users and we had 8 webserver with x 4CPU Xenon’s, each with 32GB of Ram and 4 X Mysql, clustered with the same processors and RAM

As you can see, Moodle isn’t great with the Quiz Module

Using Chamilo (there’s an image in the D.O. marketplace) should enable you to do that with 2 web servers of ~8vCPUs, 1 DB server of ~16vCPUs (might double that for fail-over redundancy), one shared space, one memory server for PHP sessions, and one load balancer service from D.O.

We successfully used a slightly higher infra for 2500 simultaneous users, although with version 1.11.12 of Chamilo, which is slightly optimized (in comparison to 1.11.10).

Setting up the infra can be slightly challenging if you never did that, though (but it would be for Moodle too). You could get away with one 16vCPU VM for the web server and avoid the duplication and redundancy of the setup, but I feel safer having the whole setup balanced.

I use the server optimize CPU 8 RAM 16 capable of running 1000 concurent users

  • Hi absencoid, Could pls tell me your configuration..
    We are using load balancer nginx..
    we are having 8 CPU 1 core each, 64GB RAM , but not able to manage 1000 concurrent users
    app is not taking more than 3 GB RAM and takes all CPU usage..

At Eummena we have successfuly supported quizes (exams) on Moodle with more than 4K university students, all starting at the same time. All that it takes is some careful planning of the system architecture and usage the right mix of horizontal scaling of the application servers and sharding of data stores based on volatility (redis for cache, apcu and opcache as well, avoid almost all writes on nfs, read-only db queries to secondary db server, external logstore, etc.)