I have not yet found any guidelines for recommended hardware and OS considerations for newbies planning a Moodle Installation. Do these guidelines exist?
For example what would be the recommended (approximate) server specifications for a Moodle installation on a Linux distribution for an anticipated situation of:
- 50 students and one course
- 100 students and two courses
- 200 students ond four course
- 400 students and eight courses
Same scenario as above but with Moodle installed on a Windows machine.
Are there any other considerations to think about when planning a new installation.
Thanks for the help and guidance
Hmm...that's a toughy....everyone has their preferences. I think for your apps, you'll probably want to choose the operating system and server type that you're most familiar with. I can tell you only what I've experienced (I've used Windows IIS and Apache, and Linux Apache). If you're starting out fresh, and have money to burn -- of all I've experienced, I've found the best performance to be with the apple Xserver. ($2500 and up).
You'll have the most flexibility, and the most functionality sticking to a linux installation. Linux & Apache is also much less vulnerable to attack than microsoft IIS, and they're free. As far as which distribution to use....There are a ton of great ones out there, and they're all free. I like the Mandrake Distribution -- if you go through the initial setup and make sure all the server packages are installed (MySQL, GD, PHP XML, etc...) Moodle will run just fine. It also comes with something called Webmin -- which allows for complete remote control of your system. So if your server is in another building, you can access it from the comfort of your web browser. (Make sure you upgrade webmin though to remove some quirks).
400 students and eight courses -- It all depends on how many simultaneous users you are anticipating. You can start running into trouble with as few as 35 users if either your apache server or mysql server cannot handle the load. I just set up a machine for a buddy that is AMD 2.7 GHz, 512 MB ram, a 40 GB hd and a case from a local computer store for about $250 out the door and it's doing fine with around 28 simultaneous users.
Oh yeah, and here's something to think about -- if you buy it, you've got to maintain it. Why not let it be somebody else's problem. Like Moodle.com? Or a private hosting company?
What is your price range?
How about for say 4000 students, with perhaps one in 20 using the server i.e. 200 people at once at peak load? I think that our chances of getting 4000 students on Moodle courses is not all that great but in three years time (the machine is to last three years) then perhaps...Or perhaps more realistically 2000 with at most 100 users on at once.
I think that the problem is less Moodle, but the audio files that students may be listening too, and how many of them want to listen to large audio files at once. It may well be that there will only be 600 students with about one in 30 ever using the server at the same time. That would only be 20 people on the server. What was the server you used again Don Hinkelman, for your exams, in the end?
My boss is going to fork out on a server for moodle it seems. Hardware is easier to budget for.
I had a quick look at a local computer supplier. This one was the most expensive of the Linux computers that they offer at about $3400.
Dual Prossesor CPU Intel XEON 2.40GHz (FSB400MHz) 603pin
With 4 40GB HDD with RAID5 and Hot Spare, and RedHat professional installed.
Does that sound suitable? I am not sure how much the budget is. I have to find a brochure of a Japanese company. I chose the above just because it is the most expensive offered by a budget company near to my university.
Oops, I see that on their options page one can bump the above up to
Dual Processor CPU Intel XEON 3.2GHZ
2000 MB memory
4 80 GB HDD with RAID 5
Hot Spare, (what?)
RedHat professional installed.
for about $5000
Ho ho. I bet that a single processor computer for about 1000 would do the trick. Martin says that the biggest server that your budget can afford is the idea.
By the way, is there any advantage of rackable servers, other than the fact that they fit in a rack?
That is a similar specification to the server I have just built. However the spec that you show has what I would consider to be rather small disks. 40GB? 200GB hard disks are common and cheap these days, and are well worth buying, especially if you are considering using multimedia files, like sound or video, at any point in the future. The unit I have just put together has 4 x 200GB drives, in a RAID 5 configuration.
By the way, a 'Hot Spare' is a drive identical to the ones in use, that is configured on the RAID controller to step in instantly if a drive fails. The data is rebuilt onto this drive automatically, which then restores the disk array to full RAID 5 again. The idea is that you can suffer two drive failures and still keep going, with no lost data.
Good idea. I will bump up the disk spec. My university has built some whizz load sharing network of servers (4 or 5?) but session data is not stored, for some reason, or for some other reason, it is not possible to run php on them. The sysadmins are trying to persuade us to put our multimedia files on the network of servers but they can't be linked using the html editor, apparently, so I would have to use html. No way. So if I am going to be putting my data on the disks, big is better.
This is probably niave but is a big drive more likely to fail than a old fashioned 40GB one? 200 sounds massive.
And is there any need to go for the really fast processor? Will 2.4GHz or 2.8GHz do?
I am thinking that perhaps the critical factor is the download time of mutlimedia files, rather than complex switching around the data base. And if that is the case, then perhaps processing speed is not the critical factor? Do the processors have all that much to do when down loading data, or is it more a question of the disks and chipset doing most of the work?
And how about the massive 2000MB of RAM? Is that needed, in a Moodle installation?
Is there an order of importance for
Thanks for the "hot spare" explanation. It sounds hot.
I recently installed a two disk RAID array on my computer at home. Then one of the drives failed. I took it along to my local shop and they said that the copy on the other disk was corrupted too. So much for RAID. I have it installed again anyway.
I should think that the 2.4 GHz processors are fine. That's what I have in this new machine here. As always, bigger and faster is better, but a pair of 2.4 Xeons should be plenty. More RAM is better, because (if you tune it correctly) it enables more of the database to be cached in memory. This speeds up the database accesses considerably. My new moodle machine has 4GB of RAM. I haven't tuned the Apache or MySQL settings yet, but I will in the near future. I'd also suggest a PHP accellerator, even on such a fast box. I'll be installing the ionCube PHP Accelerator. Moodle needs CPU speed for PHP script processing and memory capacity and disk speed for database queries. I don't know the innards of moodle in any detail, but I would guess that the same would be true of any complex piece of application server software. You need all three in order to service the various aspects of the application.
As far as disk reliability is concerned, I don't think that there would be much difference. Actually, as 200GB drives are likely to be a more recent design, it is likely that they may even be slightly more reliable. To be honest, if you look after them,(proper anti-static precautions, filtered power supply, temperature control - in other words a decent professional environment) modern disks generally are pretty reliable. You are more likely to lose data to a software problem I would have thought. But then that is probably true of any complex piece of electronics these days.
The drives I am using are Seagate 7200.7 (7200 RPM) 200GB Serial ATA connected to an Adaptec 2410sa Serial ATA RAID card running RAID5 with a hot spare.
I have installed the ionCube PHP Accelerator on our Moodle server at Carleton University. It precompiles the PHP and caches the compiled code. Subsequent calls to the page are faster because the PHP does not have to be parsed and compiled again. If the page is changed, the cache is refreshed with a newly compiled version. (This is ideal for dynamically generated content like Moodle.)
We have not performed any metrics, but the site in faster and more responsive than it was. I would recommend ionCube or any other such accelerator.
Has anyone else used this approach?
I don't know about Moodle as much but what you are spec'ing is very similar to what is spec'd for another commercial CMS in a small to medium size installations of up to 10,000-15,000 students and a couple hundred courses. Any environment over 15,000 students usually means Sun Solaris systems (440 or 880s).
Also be sure to include in your budget some sort of backup system if your institution does not have a backup system you can connect into now.
You might consider a small cluster. We have a 2-node high-availability cluster that outperforms our college's primary webserver by nearly 100 times in benchmarks.
Thank you for everyone's suggestions.
I like Rudy's idea of a cluster but I would not be able to set it up and I am not sure how friendly my system administrators are (rumour has it that they do not like Moodle).
I will go for
2 Xeon 2.4GHz.
4 200GB RAID 5 and Hotspare
2000MB of memory
CD R/W (for backup just in case there is no more efficient backup system/method)
Redhat Linux Workstation Pro
From a local company. For anyone that can read Japanese, you can play with the specs here.
I will need to investigate how to set things up so that it makes good use of all that memory.
What a powerful server you've got there, hope I wish we had the same specification stated about... But then we settle for clone server pentium 3 256 ram running fedora core 2.
Today, we had 8000 users... the server is always experience heavy load only we had the resources.... In our country ram is not as cheap as in other country. Price of 1G ram cost a lot in our country.
In January '04 I bought a dual 1.8Ghz G5 tower w/160G and 1GRam via Apple Education Discount as a dedicated MOODLE server for our 950 student institution. Did a standard entropy.ch package install for PHP 4.36.
We've been hitting it pretty heavy with summer pre-assessment tests that use every available lab computer on campus (up to 120 simultaneous takers of graphically intensive quizzes) with snappy performance and no problems so far. Logged over 3000 MOODLE hits in one hour during one of the tests.
Scheduled backup is easy using Carbon Copy Cloner and an external (bootable) 160G Firewire drive.
I'll let you guys know how it fares under full load this fall... Faculty are really starting to load up their courses with new activities and resources compared to the early adopters last spring.
I found your reponse pretty usefule, the others were too speculative for me to use.
How did you fare during the fall load? Do you have any vmstat type info?
CPU/MEM/IO usage numbers?
I need to plan for 800 users total and maybe 200 concurrent worst case.
Am very curious as to your workload and what response times were observed...
Thanks again...Joe Joe.Lindsay@QSLABS.com
We have a machine the kids in the computer club built from parts. It is your basic AMD 1100 mhz whitebox with IDE drives and 768 mb of ram. I have done a minimal install with no gui and turned off services I did not need. We use Apache 2 and PHP 4. Zend Optimizer helps speed up the page loads. I have installed verynice.
We have 700 users, 50 courses (only about 15 or so see real traffic). I just checked logs, and we have about 3000 "logged events" per day in Moodle. This machine also handles the survey tool, a gradebook and various other projects.
Webalizer claims 15,000 to 20,000 hits per day.
Reliabilty has been excellent, and according to the timer script at the bottom of the pages, even the slowest pages load in 3 or 4 seconds. We have 30 students at a time taking online quizzes, and it all works.
I run out of RAM first when it is really loaded. Then the i/o is the bottleneck as I start using swap. I would like more RAM and scsi hard drives in a (more) perfect world.
Following up the hosting service aspect, I wondered what experience there is out there of use of hosting services for international use of moodle.
We have installed moodle on a test server, and are very pleased with it. In September we plan to move to a commercial hosting service, and are currently researching possibilities. Our portal will host staff and student networks and private collaboration spaces for groups of students from different universities (usually different countries). Initially participants will be from across Europe but ultimately across the world. We will invite moodlers when we launch the site in the next couple of months.
We are looking for a solution that is scalable and offers good, roughly equivalent response times regardless of location.
Any ideas/useful tips?
If you in Perth are working with servers in Dallas, then I don't suppose that fast connection to Europe is too much of a problem
I was interested to read your comments about the Apple XServe being the best bet if you could afford it. We are looking at moving from WebCT to Moodle, and we can afford expensive server equipment if necessary. We are looking at a configuraiton something like this:
Dual Pentium Xeon 3.2 GHz 64 bit / Dual AMD Opteron
8 GB RAM (PC 3200)
6 x 200GB RAID 5 SATA drives including hot spare
We'd have 2 of these, one for application and one for database. We'd then run a lower spec machine as a test server and backup.
We are also looking at 2 x Apple XServe G5 dual 2.3 GHz with 8Gb RAM, Xserve RAID 2.8Tb.
Clearly the Apple is about 33% more expensive than the Intel / AMD solution; but is it 33% better? I am generally a Mac fan, and I am aware that the TCO will probably even out or fall in the Mac's favour in the longer term, but IT managers with budgets tend not to think long term.
Any help appreciated!
I don't know about specs but here's IDG's best of the year:
Thanks for the help
He only needs XServeRAID for large capacity sites. Also If he's looking for RAID 5, he can do that in hardware on the XServe itself. A G5 with 250 GB Apple Drive Modules should format out at a bit better than 500 GB (you loose space for parity data in RAID 5). You can get 400GB modules as well. For more info on config options, he should go to: store.apple.com and look for the XServe link.
As far as XRAID goes, you can buy it in multiple configs. He might want to start with the basic 4 drive unit and expand from there. This way he could get the chassis as it were and upgrade disk space as he needs/can afford it. The 4 drive setup would give him RAID 5 with a hot spare.
Bottom line, he needs to have a good idea of what his ultimate storage requirements are. If storage will exceed 800GB, he probably ought to look at XRAID. If it's less than that, he can probably get by with the hardware RAID 5 option.
Feel free to pass my contact info on to him if he needs additional info.
Many thanks for your help, and please pass on ym thanks to your university's Mac expert.
I'm fairly sure we're going for the XRaid basic config option, as recommended, and use hardware RAID 5 for the application server, giving maximum disk space for the database.
As far as setting it up goes... I'll keep everyone apprised of how it goes! Both our Mac experts left late last year, so it should be interesting!
my experience: its about the serverload.
If moodle is configured as it comes, chat module can cause heavy serverload. One class (25 pupils) of my can bring my dual intel 2,8 GHz FSB800, 2 GB DDR3200 1 TB SATA Raid5 (intel Controller) for database, Raid 1 Sata WD 75 GB 1000 rpm server to nearly 100 % load if they chat very fast.
Configuaration of moodle is one possibility to modify, php or Webserver is more difficult. We have W3K, IIS and now PHP as Isapi (Php 5.03, mysql 4.1.7). With the Chat daemon they only reach about 40 % serverload, when chatting very very fast. In standard mode it was configuerd as php-cgi.
Hardware is one fact to decide, support and costumizing a second. If i tell you we have Windows server on our school cause we are no programmers, we are self made admins (i studied biology), and i can solve all these probs, you have a third fact: time and interest to invest into costumizing your system.
We have a new very big server with enough air to heavy load, so if something happens, we have space, and this is very important. If you want to implement moodle for production use, take a big server to work professional.
power on moodle
after reading and searching a lot, I haven't solved my problems with moodle on my root server yet.
The problem ist, that every site of moodle takes about 3 minutes to load. I think, that i have enough server performance but it is still very slow.
My server : High-End Server from my german Provider Strato
Intel Celeron 2.4 GHz CPU (could be better I know)
60 GB HD
512 MB RAM
OS : Suse 9.0 Prof.
PHP 4.3.9 (safe mode off) as mod_php4
Any other site is very fast but only moodle takes so long to load (working just fine).
Do you have any idea why moodle is so slow ?
I've spent a lot of time reading many threads about this problem and I tried out all the hints, nothing helped.
Hoping for some new hints or a solution.
I have seem similar problems with Moodle. I run another product on the same ssytem for comparison (atutor) using same Db, same PHP, same web server tec. etc.
Response form Moodel is WAY slower than other apps.
Hmm. I have always had fast loading of Moodle, even with old Macs (assuming you are describing a single person loading Moodle, not a classroom full of 50+ students). It looks like either a software configuration problem or RAM. 512Mb is very low. I would immediately raise it to 1-2GB and see the difference. In the meantime, have a server tech person check your configuration (I wish I could help there, I always ask someone)
You didn't indicate if your accessing it on a local intranet or at "internet".I have the same problem months ago but after we boost up our internet connection speed, everything was smooth again. Currently, we are hosting our own moodle server at 2 Gb DSL connection.The specs of the server follows:
HP Xeon Server
1 Gb Ram
10/100/1000 Lan adapter
Mysql 4.0 (external database server)
Although it has been mentioned in this thread I will mention again that a decent backup solution needs to be part of your budget. Multiple processors, lots of ram and redundant disk arrays are fine while the server is working but if the system stops working you will need a failover strategy of which your backup will form a part.
Most people only get caught without a backup once - - so budget for a decent backup solution. Or host and make backups and failover restoration someone elses problem.