We have a requirement to set up a Moodle system with an initial load of 150000 users that will grow constantly to billions and more. There'll be 50000 concurrent users. The courses will have SCORM compliant flash content.
Thinking of using the LAMP softwares.
Please help in identifying the hardware server configurations and tuning required to the softwares for better performance over the internet.
Thanks in advance
Its set of schools subscribing to these courses. Fifty thousand is the peak time figure - exam time and at normal time this should be twenty thousand or so. At least that's what they expect it to be.
However, 1GB per 50 users is optimistic if they are (say) all bashing away at quizzes at the same time.
According to the US Census bureau
The current world population is a little under 7 billion people. For your user base to grow to billions (i.e. at least two billion), you would be dealing with around 28% of the current World global population. I'm not sure how to interpret "billions and more", logically the next unit up would be trillions. At current population growth rates and considering the limitations on the planet to support human life we have a way to go yet before needing to use trillions.
To put it mildly, your number seem to be optimistic.
Sorry, that was million and not billion
Its like this - to start with 1,50,000 students and can go up to 2 million [it's million only ] students.
These are practice courses for students to take up before actual exam. So, just before exam time there can be more load compared to other times - almost every other student hitting the site.
Hopefully Moodle can handle this load.
It's a mistake to ask if Moodle can handle this... scaling Moodle is easy. Just throw hardware at the problem.
BUT.... there is no way you are ever going to get a sensible answer to your question. No one knows because nobody (not even you) understands the usage patterns of your users.
The only sensible thing to do is to run a small but realistic pilot programme and monitor the system. You will then know what the big system will look like.
OK...Thanks..The current expectation is that they'll be taking up quizzes before exam time. But they are not restricted to take up courses at that time which is a flash content.
We were also thinking of doing a trial setup to start with 150000 users like -
1 load balancer + fallback,
2 web servers,
1 MySQL DB master and one DB slave.
RAM - if we stick to 1 GB of RAM for every 50 concurrent users, the memory need for this requirement is pretty huge. So, how can we decide on this?
Hopefully this configuration is good to start with...
If it really reaches a million active registered users I would guess this will be the biggest Moodle system in the world, so you're entering uncharted territory.
For example, our system here at the OU has about (top of my head) 150,000 active registered users (i.e. students who are currently enrolled on courses which use the moodle system). Our actual user table has about 750,000 but that's mostly people who did a course previously or whatever - technically they still have some access (and they might well do another course later) but in practice most won't use it at the moment.
If you define 'concurrent' as 'the number of different users who access the site within a 5 minute period' then we get something like 1,500 concurrent users at normal levels, and our load is relatively balanced so it doesn't peak too much higher. We're using four webservers and one db server at a time (it's harder to scale those) to handle this load.
If you want to make sure Moodle can scale to much higher levels you might have to get closely involved with development and performance enhancement and suchlike.
A safer approach might be to use multiple independent Moodle systems with completely separate databases (and perhaps you might need to build some system to synchronized content between them). If it is possible to separate your users in this manner, you're a lot less likely to run into scaling problems.
It would also be a very good idea to work out how to scale your load gradually i.e. don't try to get 50,000 concurrent on day one, see how the server handles 1,000 concurrent, with enough time to sort things out before it reaches the full 50k.
The 'billions' would be a nice aim for moodle some time, but I think that probably has to wait until Martin Dougiamas's secret plan to take over the world comes into effect.
"The 'billions' would be a nice aim for moodle some time, but I think that probably has to wait until Martin Dougiamas's secret plan to take over the world comes into effect"
Can I be Martins Mini Me, will there be a carved out Volcano Island (just offshore from Perth) and sharks with laser beams and everything?
The island conveniently just offshore from Perth is Rottnest Island. It's not volcanic. Currently it is a tourist destination, although in the past it has been a WWII fort and a concentration camp for aboriginies, so a future use as Martin's HQ would not be unthinkable. The do have sharks in the waters round there, but I don't recall laser beams.
Sometimes, when one starts approaching government entities to try to participate in big projects, proposed numbers of users can be overwhelming (not billions, but maybe one or two million).
I do realize that these numbers are usually quite overrated, however, as a (hopefully) future service provider, one has to arrive with feasible solutions and approximate costs.
After having read some of the documentation and several threads in different forums, it seems clear that Moodle itself doesn't have any limitations, but that everything resides in the kind of hardware used.
Yes, as it has often been said, one just needs to throw hardware ($) at the problem, but here is where the daunting task arises. For example, based on different total/concurrent user combinations, and maybe rough estimates on the kind of resources to be used (like video, SCORM, quiz), maybe it would be interesting to know the "best" (I know there is no such thing like that) empirical estimates about the hardware configuration one needs to look for in a hosting provider; like a comparative table, maybe?
Though I've mostly been thinking aloud, it sure is a serious issue I'd love to get some feedback on, as we (as an institution) are on the verge of getting into major leagues