And if Moodle would start give trouble if your membership grows to big?
This is one of the things that I am a little concerned about. Moodle can be a little slow
on my Ipowerweb server. There is an excellent post by David Delgado here about how
to speed up Moodle.
But this mainly refers to those that can handle their own server.
If you want to be sure that you are using a good shared hosting for Moodle, optimized to run it as good as it can, there is an easy way to solve it: use
It is more expensive than other cheap hostings, but you will avoid any problems with Moodle installation, configuration, customization, optimization, administration and security issues. You will have the very creator of Moodle taking care of your server and your Moodle. It will cost 50$/month. I think it is worth the price.
If you want cheaper alternatives, you can take a look at another discussion about it:
I think that, if you want a very cheap alternative to moodle.com, with a worse performance, the best one could be:
PHP safe mode = OFF
That is because there are Moodle users with good experience installing and mantaining Moodle in this hosting service, and a good evaluation of it in a good comparative site, with ratings
Regarding the real asked question (how many users can Moodle safety accomodate?)... It has been asked before... please search the forums before asking something:
Anyway, there is no clear answer to that question, since it depends in so may factors: the server hardware, the operating system, the optimization of the services (Apache, PHP, MySQL,...) and Moodle itself, the number and load of the courses,...
The rule is clear: optimize everything you can and put as many resources as you can: CPU, memory, RAID hard disks, etc. There is a very good point here: as Moodle is Open Source and you can install it at no cost, if you see that you have your server (or hosting) overloaded, you can install as many servers (or different hostings) as you want. So you can have a distributed e-learning system. The only thing to take into account is to do this in a reasonable way (distributing courses among the servers depending on the kind of courses). Anyway, I am sure you will have enough with a good single server (or a good single hosting as http://moodle.com )
You can have a good real example:
Moodle hosting server: http://moodle.com/hosting
Singe CPU: Pentium 4 at 2.4GHz
RAID Hard disks: 40GB (more or less)
Bandwith: 750GB (more or less)
* Optimized just to run Moodle *
Operating System: Red Hat 9.0
Control panel: Cpanel 7
PHP 4.3.2 with PHP Accelerator
Perl, Frontpage and many other services
This server can easily host 10 concurrent Moodle services with perhaps hundreds of courses and thousands of users. I think that one of the Moodle services that this server is running is just http://moodle.org , wich, just in this course (Using Moodle Community) has nearly 800 users (most of them being very active). It does not seem to be a very stressed server, as you can see.
Martin, it would be of GREAT help if you dare to make an aproximation to the resources needed for a given number of users and courses (just to make an idea). You can get the data by averaging the Moodle services that you are hosting right now.
All a sysadmin can do is get the biggest server they can afford and then watch performance carefully. This is what I do. If this server seems to be filling up, I'll stop adding to it. If usage increases, I'll consider moving some sites to another server.
Despite my misgivings, my gut-feeling guess is that this server could reasonably support about 400 browsing users within any given minute.
This figure is practically meaningless, though.
Some random factors that will vary that figure just on my server (ie leaving aside hardware configuration):
- disk resources vs database resources
- which module are they using?
- which tables are they using?
- how big are the tables?
- if using quizzes, how big are the quizzes?
- if using quizzes, which question type and how many of them?
- which language are they using?
- how many posts are in used discussions?
- how fragmented are the disks?
- which version of Moodle is running?
- which version of PHP is running?
- which versions of all Linux software is being used?
- what Moodle cleanup settings are being used?
- what other processes are happening (eg backups)?
- how many simultaneous windows is each user using?
- how many of the scripts have been cached by PHPA?
- how often is cron being run?
- how fast is the mail system that day?
- how many people are subscribed to each forum?
Some of these average out - some don't. See what I mean?
You have also said that http://moodle.org serves about 5,000 pages/day (or 600-800 user visits/day, each visit viewing about 7 pages). We know that most of these accesses are to this course (Using Moodle Community). This course has 774 users.
That means that your server ( http://moodle.com/hosting ) can provide a good hosting for about 115 courses like this one. That is, your server can handle about 89,165 users being quite active like the ones of this course (they are unenrolled if they do not login for 30 days, and the forums are very active). 89.165 users for a single, optimized, server!!!
There are a few things that make all these calculations very relative:
1) This course has few contents. Adding more contents means more accesses per student, wich means more page hits per visit wich means than we can handle less students.
2) This course has no quizzes at all. Quizzes are the most stressing modules for Moodle, and will get lots of CPU and memory, wich means that we can handle less students.
So, as Martin says, there are so many variables to take into account, but it helps knowing that a single, optimized, server like http://moodle.com/hosting can handle nearly 90,000 users in more than 100 courses like this one. Really impressive. For me, it is a good measure for aprouving Moodle scalability.
Anyway, if you are not sure about it, just install several Moodle servers just to fit your need, when you see that they are near to be overloaded. You will not have to pay any license as you would have to do with WebCT and Blackboard. Who can give more for less?
One last thing: very beautiful numbers, I mean, this course gets, on average, about 1 user visit per day, for EACH user. In any visit, a user sees about 7 pages. Good job, Martin!
For example, I would query your statement that more content means more accesses, since it's the dynamic content like forums and quizzes that cause the most hits (not much happens to display static content on the screen, especially long pages of text).
I would not support that 90,000 figure, and I have no idea if a better average number would be higher or lower.
You're right in saying that clustering is a good solution for large institutions (imagine the web traffic sourceforge.net is handling).