- 3 ghz zeon processor
- 2 gigs of ram
- 100mb lan connectivity
- Windows 2003 server
- ZendCore PHP
- Moodle 1.9+
With 5 users or so we are running at 100% utilization. with one classroom of 30 students trying to get on, it takes 2 minutes for a page to come up.
I ran some load testing on it and 1 user it's fine, 2 it bumps up, 3 it's going at 70-80% as they flip through pages, but after about 5 or so it's 100% solid.
honestly, this thing should be able to serve pages to our school I would think. And yes, windows has to stay. Would simply switching to an xamp apache webserver over IIS solve an issue?
Or do we need to get a more powerful dual processor system. We expect several labs of 30 students at least to be working on this server quizzing and such, possibly upwards of 150 - 200 total students at a time.
Is Linux an option?
If not - try increasing RAM to about 4 GB (i think that is the max on S2003 32bit?)
Swap in a gigabit ethernet card
Do some Mysql Tuning:
Run the script @ http://www.day32.com/MySQL/ and follow the instructions on how to tweak your my.cnf
I assume you also went through the motions listed here: http://docs.moodle.org/en/Performance
thanks for the reply...
Linux is not really an option, but we do have gigabit on that machine itself, but the rest of the clients are all switched out at 100mb, so that should be sufficient.
When load testing, the 2gigs was always enough, nothing but S2003 with IIS and FTP turned on running moodle. We have 2 SCSI drives mirrored as well.
It's just odd, and can't figure it out, spent days tweaking. I will try your link to the performance tuning section.
I am not really an expert in this area, but,
Which process is maxing out? I am guessing it is MySQL, like Novek said you should do some simple MySQL tuning (which is editing the memory numbers, threads and timeouts in the mysql.ini file).
Are you using virtual memory? This is bad. If you have a spare 2 gb of ram that you could temporarily put in the machine, to boost it up to 4 that could be worth a test.
Is it an option to move the database to another server? I take it from you comments that you are a Windows only school is there a SQLserver in the place that you could use? I have never tried Moodle on a SQLserver, but it might be worthwhile to share the load.
Keep backups where possible and TEST before attempting to implement any changes to the live server.
Since this is a Windows box, can you see which process is hogging the resources through the Taskmanager?
I strongly suspect it is not related to the WAMP components, perhaps a runanway Win32 process or perhaps a memory leak?
May I know why?
> we do have gigabit on that machine itself, but the rest of the clients are all switched out at 100mb, so that should be sufficient.
What you say is that the machine has a 1 Gbit/s network interface whereas the clients have 100 Mbit/s.
How are they connected? I mean, are they in a LAN where the server goes to a Gbit-switch which distributes the traffice at 100 Mbit/s or is it in a hosting place peering to internet nodes at 1 Gbit/s or higer links?
Did you check the documentation http://docs.moodle.org/en/Performance ? (There is also http://docs.moodle.org/en/Performance_FAQ but not very informative yet.(
I suspect you don't have enough RAM and/or you have a crappy disk IO speed. Moodle on Windows absolutely chews RAM as Windows' threading is so poor. As soon as it starts paging you are dead in the water. Anyway, this is all just guess-work without running some serious diagnostics.
I've had clients with much bigger Windows boxes than this and they give up about 20 users doing quizzes. Your experience doesn't sound unreasonable.
Microsoft don't make servers, they just think they do Rant, rant
"...but we do have gigabit on that machine itself, but the rest of the clients are all switched out at 100mb, so that should be sufficient"
Are you saying that this isn't even a real server, it's a virtualized host with only 1meg allocated? If so, you are mad (sorry)!!
I'm a brand new user still trying to install my first site, so what I say here could be wrong, read it with a large grain of mistrust.
I experienced a worse situation creating a demo model using XP pro. And oddly it was slow even when the only connection was one person logging in at THAT machine.
My first problem was that Apache is set up to use an assigned IP address. So check to see if your server has a static IP address, and if it doesn't, get your administrator to assign it one. (This could also be why IIS would be slow.)
Secondly, reading the how-to's points to using IIS as a problem. It seems to me that Moodle is written with Apache in mind, and you have to be an IIS guru and tweak it alot, to get to run decently. So, I suggest you read, read, read, the documentation on this site about IIS. The tweaks are numerous, and spread throughout the forums and docs. (Did your Zend Core install Apache, so you have both IIS and Apache running at the same time?)
Next, I screwed up while installing the OS (I started with a new hard drive). The machine was fast, up until windows update loaded service pack 3/IE 8. Also, because I wasn't sure what was needed I had let windows update itself automatically and it installed: .net support, Silverlight, DirectX, SQL Server 2005 Compct Edition, Visual C++, MS Sync Framework Runtime Native (and Services Native), Media Player, MSN Messenger, Windows Defender, Windows Live (Sync and Upload Tool), and Windows Search.
To further cripple the machine, I installed Java.
As you can see, Windows went hog wild and each of those bits of software use ram memory and processor time.
If you don't have the expertise to uninstall the above, or you need it for other services on your server, I would suggest installing the mazimum RAM that you can, as with all the programs listed above, my machine starts using the swap file if I have only 1 Gig of RAM, even before I installed anything but Java. (Just in case you don't know a swap file is, when the RAM isn't big enough, Windows starts using the hard drive as RAM memory (simplified explanation) so everything slows down to the mechanical speed of the hard drive instead of the electronic speed of memory).
Last, I see you used Zend Core that includes an optimizer. I tried to find the reference about a php accelerator (but couldn't) that said it actually makes the performance worse. So try looking up accelerators. (It could be about Apache or MySQl)
Hope this helps. Good Luck.
Consider any of the Linux/Nix platforms and take it from there.
Windows servers are not bad for a small user base but even for this, I'd use Nix