What would it take?

What would it take?

by Alex Walker -
Number of replies: 8
I've been interested in moodle for a year or so now and have played with it on and off. I've installed it on a server I use for web hosting and have been playing with it and finally trialled it in a few groups of students this week.

The first trial (group of about 7 A-Level students - 17/18 years old for you non-Brits) went really well and everything seemed to be fine. They just answered a quiz and a survey.

The second trial is where I experienced problems. It was a group of 13 students, who were all meant to be exploring moodle for a bit (quiz, survey chat etc) and then uploading some work to submit and writing a journal entry. The server started crawling along once they all got on. It's a Linux server, with a Via 800MHz processor with 512M RAM and the load got up to 16!! (See http://wonky.org.uk/mrtg/load.html from 19th November at around 2pm)

So, as with everyone I'm wondering what it'd take to get "decent" performance from this system.

I'm demonstrating moodle to the head on Monday (22nd Nov) afternoon and would like to have an idea of server requirements when I do... so let me tell you about the school...

We're a secondary school (11-18 years old) and have around 1500 students, with around 400 computers on-site, with about 300 accessible to students (all staff have laptops).

We already have a few servers in school, but to be honest most of their resources are taken up already (despite it being a brand spanking new system). So I'm guessing we'd need a moodle server, or servers, just for that and authenticating against the 2003 Domain.

So - what would it take? I've had a look around and to me it looks like we're looking more than one server, load-balanced with a vast amount of RAM... am I right? Any indication of cost for such a thing?
Average of ratings: -
In reply to Alex Walker

Re: What would it take?

by Jay Lloyd Neal -

Dual G5 tower, 1 gig ram.

Apache Server 1.3, PHP 5.01, MySQL 4.0.13, Boutell GD 2, Aspell 0.6
Thanks to Marc Liyanage for making DARWIN 10.35 compatible binaries for PHP5.01/GD2. There have been no performance problems with this server combination. big grin

We use CarbonCopy Cloner for quick daily system ghosts to external firewire drives.
We use internal authentication for 1355 users.

The price of a MacOSX machine will be a little higher than a custom built dual-64bit AMD barebones kit of similar specs, but Apple always uses top-notch parts, and the ability to boot at will from your external backup-drives is a huge comfort zone. If you go with another namebrand, you are likely to pay more (margins are fat once you get into the server class, even at Dell or HP).

You probably won't need more than one server for your site if you buy a nice dual processor/fast bus/ram combo. (I'd stay away from the VIAs though wink) In another thread, Martin D. recommended 2gigs of ram for new moodle servers.

I hope this helps...

In reply to Jay Lloyd Neal

Re: What would it take?

by Alex Walker -
I'd probably opt for a Linux solution myself, just because I have more experience of administrating Linux systems. However, it's probably not going to be up to me as it'll be the technical staff that look after it mostly (although I'm sure I'll be involved in there somewhere).

Anyway, glad to hear that the spec isn't quite as high as I thought it would be... thanks.
In reply to Alex Walker

Re: What would it take?

by Michael Penney -
Hi Alex, what is this representing? Your graphic says it is a traffic analyser for a router? Wouldn't that be monitoring the load on the router, not the server?

My guess would be that you are seeing bandwidth overload, rather than system resources overload, as IME your system specs should be sufficient for hundreds of users.

What do the Linux resource monitoring tools (such as top) say?



In reply to Michael Penney

Re: What would it take?

by Alex Walker -
Sorry, that graphic does need a bit of explaining... http://wonky.org.uk/mrtg/ is the front page and I linked straight into the load page at http://wonky.org.uk/mrtg/load.html (I've put a copy of the graphic at because it'll soon disappear off the graph).

The graph shows load over a 5 minute period multipied by 100. So the peak you see going up to 1600 is a peak load of 16.00.

Bandwidth is no problem, since the server is plenty capable of the 14k/s it was using at the same time, as is the 2Mb SDSL link we have. Also other websites were working fine at the time. The load is the bottleneck.

The Via processors are cheapo things, so they don't have much cache on them I believe, which could impact this.
In reply to Alex Walker

Re: What would it take?

by Michael Penney -
Thanks Alex, but I'm still a bit confused by what "load" represents. Is that processor, ram, and disk all mixed together?


In reply to Michael Penney

Re: What would it take?

by Alex Walker -
Sorry Michael, I'm assuming that everyone here uses Linux and knows what "load" is... bad assumption.

Load, I believe, is the average number of active processes. Once load gets about 1 (or 100 on that graph, since it's scaled up) then there are processes wanting to be run that cannot run and have to wait. It's like a measure of CPU usage, but it doesn't tail off at 100% (which is pretty useless, because you might just need 1% more to do the jobs or you might need 1001% more) So when the load is 16, there are 15 processes waiting... which is not a good situation.

There are some definitions here: http://www.luv.asn.au/overheads/NJG_LUV_2002/luvSlides.html (don't look too far down, it gets VERY complicated).

Basically you really want your load to be under 1 - meaning that all processes get run on the processor immediately and nothing has to wait. However that page says an average of 3 isn't too bad. 16 certainly isn't acceptable.
In reply to Alex Walker

Re: What would it take?

by Alex Walker -
As a follow-up to this, I tried getting 30 pupils to login today, but most of them couldn't even get them all to view the front page and I saw a few errors to do with the database being unavailable.  I think about 3 got logged on, 5 more saw the front page, but everyone else wasn't able to load it up.  So I'm wondering if people can recommend any tweaks I could make to my apache / mysql configs to make this work better.  Also, anyone got experience with PHP Accellerators?
In reply to Alex Walker

Re: What would it take?

by Michael Penney -

Hi Alex, this is why looking at top may be more helpful than load. Are you maxing out on processor or ram when this happens?

Or do you have plenty of both?

If the latter, than you probably have configuration issues. When we installed Moodle on RHE, we found that both PHP and MySQL were set up to limit their use of resources. PHP was limited (IIRC) to ~12MB of RAM, and MySQL was set up to use My_tiny.cnf. We set PHP to 1GB of Ram and set MySQL to use My_huge.cnf, and have had no performance issues.

It was a while back, but when we set up 1.2 on our old G3 server (10.1) we also had to do tweaking of the defaul php and mysql installs, after which we had no problems (and we could support 30 simultaneous logins on that system).

Anyway, you may indeed have hardware issues with your via processor or RAM maxing out, top would help you identify that, and if not, then you probably are looking at configuration issues & reading up on tuning php and mysql for large amounts of users might be helpful.