Hardware and performance

 
 
Picture of Moole Addict
Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

hi everyone,

I need an approximate hardware config to accomodate 300 concurrent users doing the average moodle stuff. At peak, they would be 550. Around 3K are registered.

I know it all depends on what activity they are doing, but still I want a ball mark what should be looking at approximately assuming they are not using very little nor a lot of resource based activity but somewhere in the middle/average.

Would a quad core server with 4GB suffice or do I need dual quad core with 8-12 GB Ram?

How much ghz cpu I should be looking at and would 5tb bandwidth suffice?

Again I'm just looking for a ballmark config which can be altered later according the the actual usage.

All of you experienced people please advise with your valuable information.

Thanks everyone for reading.

 
Average of ratings: -
Picture of Jason [Moodle Enthusiast]
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

definatly NOT

 

you need an entire server cluster serving to a preformance optimizer and a database server as well...

 

 

 
Average of ratings: -
Picture of Visvanath Ratnaweera
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
Group Particularly helpful Moodlers
Hi Jason [Moodle Enthusiast]

This is interesting! Do you have references to support your statement? Or are you venting the problem you describe here https://moodle.org/mod/forum/discuss.php?d=221700 ?


Hallo Moodle Addict

Check the initial pointers in the introduction to this forum https://moodle.org/mod/forum/view.php?id=596 first.
 
Average of ratings:Useful (1)
Picture of Moole Addict
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

Thanks Visvanath for your reply.

I did check out the pointers and the general hardware requirements and their performances on those links.

Its very subjective based on what the actual concurrent visitors would be doing, so I estimated the actual usage(which activity they would be doing) by the users(number of concurrent users for each activity) so that I get a better estimate of what hardware I would need. The following would be the actual usage on the moodle site for the specific activity:

1. SCORM: Entire course content will be uploaded in the form of a SCORM package. This SCORM will contain the main content and the quiz. We are expecting concurrent users on SCORM activity (200-300 concurrent users at any point of time and 500 when the load will be at its peak). As the examination part is in the SCORM itself so we'll not be using the default moodle quiz activity.
These courses with their quiz would be open for a defined period of time.

2. Forum
3. Glossary

 

Custom Modules That Would Be Used:

1. Interactive games: Various interactive games will be created for users. Users can test their knowledge by attempting questions in the game thereby progressing to next levels.
2. Interesting facts: Flash activity which will list interesting facts or events related to that module
3. Information security jokebook: Flash activity to display interesting jokes on information security
 
As the custom modules are part of optional section (150-200 concurrent users), so there will be no involvement during examination/ SCORM.

 

For the above requirements, would a E3-1230 V2(4 cores) with 8GB RAM suffice or do I need a Dual E5-2620(12 cores) with 16GB RAM.

Also, for the above requirement, will 5TB suffice or do I need 10TB?

Is 100mbps connectivity enough for the above requirements?

Do I need SSD's with the above servers Or enterprise SATA would be enough?

Is RAID essential or only enterprise SATA or SSD would work fine?

 
Average of ratings: -
Picture of Andrew Nicols
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
Group DevelopersGroup Moodle HQGroup Particularly helpful MoodlersGroup Testers

It sounds as though your requirements are fairly low at the moment, but is also depends on how may courses each user is enrolled on, the number of activities in each course, the number of sections, how those SCORM modules interact with Moodle etc.

As others have said, we can't really advise on exactly what hardware to buy, nor what disk space would be sufficient.

RAID is essential. If you're asking that question, you probably need to employ someone who understands what RAID is. RAID is not a disk type, it's a collection of disks operated in a way to provide redundancy in the case of disk failure. It's a different technology to SSD or SATA or SAS - a complementary technology.

As a quick comparison, I run a system here with 22,000 users with typical daily concurrency of 150 users sustained throughout the day and peaking at 3-400. These users are doing a massive range of things from quizzes, to viewing SCORM content, using glossaries and forums, downloading course materials, watching videos, submitting assignments, etc. Our infrastructure includes:

  • 2 load balancers with 2GB RAM, 2vCPU. We could work with one, but having two gives us flexibility to perform security updates without service outage;
  • 5 web servers with 4GB RAM, 2vCPU. We could work with as few as two or three, but we'd rather have spare capacity etc. We do tend to use most of the RAM for PHP accelerator caching; and
  • 1 DB server with 10GB RAM, 4vCPU. Again, this probably has more than ample memory, but we like to be able to keep the entire DB in RAM. We'll also probably be adding memcached on this server at some stage to benefit from MUC.

Our disk storage is SAN based and served over NFS. Our day-time network activity peak this week was about 25Mbit/s per server so topping out at 50Mbit/s for both load balancers. All of our video content is served from a separate flash media server. We also cache aggressively. That concurrency number is based on the number of active sessions in a five-minute period.

Andrew

 
Average of ratings:Useful (3)
Picture of Moole Addict
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

Thanks Andrew for your reply.

Let me put it this way.

1. 200 to 500 Concurrent using SCORM(Main Content + Quiz)

2. Interactive games, Interesting Related Flash Facts & Events & Flash Based Interesting Jokes(150-200 users)

assuming all the users are enrolled on all the courses.

Total Concurrent will be 500-600 max.

Would this work on any of the above servers that I mentioned? If yes then which one?

 
Average of ratings: -
Picture of Mathew Gancarz
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

I think if you really do have 200-500 people making requests to the server AT THE SAME TIME, ie: people in a class room waiting for someone to say "GO!" the hardware you listed won't be able to support that.

If you have 200-500 people that are being asked to do a test at some point over the next two days, meaning they are actually spread out over the day, so you only have maybe 10-20 making requests within a single 5 minute time slot, then you should be okay.

Key things I've found so far:

  1. Absolutely use a PHP Accelerator, it reduced page load times on our site from ~1.6 seconds on average to ~0.8 seconds, which makes a very visible difference to the end user and frees up the process to serve another user.
  2. SCORM packages make a TON of file calls. We produce ours in Lectora and the initial load of a SCORM module produces 20 pluginfile.php requests. Each next page then produces ~5 more. Since the majority of your content involves SCORM packages and Flash content (which is again, file intensive) I'd strongly recommend going with SSDs in some form of RAID configuration or looking at some form of file caching mechanism on the server. Make sure the Moodle data folder is located directly on the server or connected directly as opposed to being served on the network from another machine.
  3. Are you planning on running the DB server on the same machine as the web server running Moodle? If yes, you'll need the bigger/faster machine for sure.

 

 
Average of ratings:Useful (2)
Picture of Moole Addict
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

Thanks Mathew for your reply.

Dont you feel a dual E5 2620(12 Cores) with 32 GB RAM would not be able to support 500 concurrent for the above mentioned activities within a single 5 minute time slot?

 
Average of ratings: -
Picture of Mathew Gancarz
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

Honestly I'm not sure. We're going to have a maintenance in the next week or two and I may try to establish the max upper concurrent user limit on our installation. We have SCORM packages with flash in them so it would be semi comparable activity wise since I have a JMeter test setup with a SCORM activity tested.

Our production box is dual Xeon X5560 (8 cores in total) with 36 gigs of RAM, running on Solaris with a seperate 4 core DB server, so it would be similar hardware wise to your setup.

You didn't mention if you are running planning on running Linux or Windows.

 
Average of ratings:Useful (1)
Picture of Moole Addict
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

Thanks Mathew,

That would be interesting. Let me know the results.

I'll be using Linux with CentOS 6.3 - 64 Bit. That should work well with moodle 2x I assume.

 
Average of ratings: -
Picture of Mathew Gancarz
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

I wasn't able to get a clear max concurrent users since I didn't have too much time to test, but it looks like our systems could handle up to about 100 users within a roughly 5 minute period without significant slowdowns. The only operations that errored out were Quiz Submit/Finish attempt. Upping it to about 200 users caused time outs and increasing error rates (~20-30% on the quiz section, minor single digit error rates on others). Later on I may run another test without the Quiz component to see how that runs. For my test, the groups of users were distributed evenly across the four activities, so only 25 took the quiz in the 100 user case and 50 in the 200 user case. 

Here is my jMeter test plan below in normal english:

Browsing Resources in a Course

  • This test consists of a user logging into the site, viewing a course page, viewing a course syllabus (PDF), viewing a page of resource links and logging out from the site
  • 25 Test users were used, with 4 seconds between each user starting their actions, with the whole 'script' looping 2 times for each user
  • A Gaussian Random Timer was used between each step, delaying each next activity by 1 second + a random value between 1-3 seconds, giving a random delay of 1-4 seconds before each next step was taken

Viewing a SCORM Package

  • This test consists of a user logging into the site, viewing a course page, viewing a SCORM entrance page and then clicking through the first 4 pages of a SCORM package, one page including a Flash activity. The test does not actually interact with the Flash activity though. The user then returns to the course view and then logs out from the site
  • 25 Test users were used, with 4.8 seconds between each user starting their actions, with the whole 'script' looping 2 times for each user
  • A Gaussian Random Timer was used between each step, delaying each next activity by 1 second + a random value between 1-3 seconds, giving a random delay of 1-4 seconds before each next step was taken

Interacting in a Forum

  • This test consists of a user logging into the site, viewing a course page, viewing a forum within a course, viewing a random discussion within a forum and replying to the discussion with a boilerplate text, repeating once more to view a random discussion and post and then logging out from the site
  • 25 Test users were used, with 5.6 seconds between each user starting their actions, with the whole 'script' looping 2 times for each user
  • A Gaussian Random Timer was used between each step, delaying each next activity by 1 second + a random value between 1-3 seconds, giving a random delay of 1-4 seconds before each next step was taken

Taking a Quiz

  • This test consists of a user logging into the site, viewing a course page, viewing a quiz within the course, starting an attempt of the quiz, submitting the quiz, finishing the quiz and then logging out from the site
  • 25 Test users were used, with 6.4 seconds between each user starting their actions, with the whole 'script' looping 2 times for each user
  • A Gaussian Random Timer was used between each step, delaying each next activity by 6 second + a random value between 1-4 seconds, giving a random delay of 6-10 seconds before each next step was taken

In short, if you avoid quizzes and large numbers of users all going to your site within the same few minute window you may in theory be okay (no guarantees of any kind included)

 
Average of ratings:Useful (2)
Picture of Mathew Gancarz
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

And since pretty graphs are always a winner, attached is a graph for 100 users


 
Average of ratings:Useful (2)
Picture of Mathew Gancarz
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

And one for 200 users, with jMeter writing over itself and starting graphing from the left side again halfway through. Not sure how to prevent it from doing that.

Note how the auto-scaling is an order of magnitude larger for response times on this one.


 
Average of ratings:Useful (2)
Picture of Moole Addict
Re: Moodle Hardware Requirement For 300 Concurrent & 550 peak?
 

Thanks for sharing the test and the detailed info.

 
Average of ratings: -