I am using moodle 2.3.3+ in reverse proxy. Our moodle working fine with 2500 concurrent user. Around 2500 user can login and can atten quiz . If the user increase our moodle will not response, it hangs. My requirement is that 15000-20000 concurrent user should atten the quiz at the same time. Please help me how do i set up moodle.
This is a massive requirement. This should actually be in the hardware and performance forum but anyway....
Even 2500 concurrent users is a huge number. What hardware and OS are you using and what steps have you taken to measure the performance and establish why it is hanging?
Do you really (*really*!) have to have that number doing the quiz at the same time. This is going to be difficult and very expensive to achieve. If there's any way to split it up you should explore that first.
To understand the scale of the undertaking you must first go through the pointers given in the introduction to the "Hardware and Performance" forum: https://moodle.org/mod/forum/view.php?id=596.
This discussion is an interesting one for that forum. If the involved parties are not against, I request the moderator to move the discussion to "H&P".
That sounds amazing! The 2500 concurrent user load would be perfect for my purposes. Please tell me what kind of configuration you are using to acheive a solid experience for all those users performing a quiz activity at once.
We want to conduct exams in Moodle. We are remotely hosted on a semi-dedicated service. Should it be on Cloud VPS, fully dedicated, or even consider hosting at our university?
Any advice would be awesome.
We currently run roughly 300k pageviews/week with a 50k user base without any performance issues. Contact me for direct advice, and I will try to reserve time to write additions to the performance documents. 15-20k users on quizzes is definitely possible with optimization and if necessary loadbalancing among multiple servers.
the slowest part in Moodle is the database abstraction, which in my opinion, is faily poorly designed. For instance manipulation of database data often takes two roundtrips: fetching data from mysql an array, transforming the array in PHP, preparing the statement for insert/update into the database and then writing information to the database, and then retrieving it again to show on your screen (with array processing)