Moodle Site for 1000 concurrent users

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. Thanks

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

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.

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.)

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

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.