## Hardware and performance

### 700 Concurrent users

This discussion has been locked because a year has elapsed since the last post. Please start a new discussion topic.
700 Concurrent users

Hello All

I am in the process of developing a new elearning site using Moodle. I have over 1000 students signed up. I will have roughly 700 users logging into the system to access the live course. This will be in the form of a youtube video embedded in the course. The only other activity that will take place is comments or forum posts during the Q&A session.

I initially setup using shared hosting but now I think this will not be able to handle the demand therefore I am looking into VPS. I am unsure what spec I should be looking at. I understand it is not possible to pin-point the exact requirements but I was looking for a bit of guidance.

I would also love to hear from others that manage large class sizes and any tips would be greatly appreciated.

Thank you.

Average of ratings: -
Re: 700 Concurrent users

If the video is hosted by Youtube, the strain of video streaming will be on Youtube servers not yours.

Average of ratings: -
Re: 700 Concurrent users

I'm not worried about the video streaming, rather the process of accessing the page that will have the video embedded. If 700 users access it within a very short space of time, I need to ensure the server can handle it and not crash.

Average of ratings: -
Re: 700 Concurrent users

As a start, you will need more than one VPS. In fact, you are probably going to need several.

I suggest you investigate using nginx+php-fpm, and using a load balancer. If you use something like Amazon you will probably want to start more application servers when you expect all the load, and then stopping most of them afterwards. This'll save you some .

Use this: https://github.com/lucisgit/moodle-jmeter-script-generator to performance test your setup. It makes a jmeter script that will login and make forum posts. Tweak the numbers concerning ramp up time and delay between requests in the resulting jmeter script in such a way as to adequately reflect the amount of requests you think you are going to do.

When testing 700 simultanous connections, you are also going to need to run the jmeter itself on a reasonably well connected and quick machine.

Average of ratings: -
Re: 700 Concurrent users
You cannot be certain. Things that are resource intensive are anything to do with streaming (covered for you as you are using Youtube) and anything to do with the quiz. Assuming your users will login, select a page then watch a video hosted on youtube the performance overhead will be modest. However it is not possible to say exactly what the hardware requirements will be. For example if all 700 users logged in at exactly the same moment then a reasonable configuration might grind to a halt, but that is a very unlikely scenario. It would be more reasonable to assume that even if they all end up watching a video the login process would be staggered over a few minutes and the actual demand would be dramatically reduced.

Average of ratings: -
Re: 700 Concurrent users
Hi

Considering the statement "The only other activity that will take place [apart from YouTube videos] is comments or forum posts during the Q&A session", my guesstimate is that even a decent shared server might work, provided that it is not overbooked (plenty of reports in this forum) or does not have artificial caps ( https://moodle.org/mod/forum/discuss.php?d=215641 ).

But if you are serious about those "700 concurrent users" a shared server is a bad idea considering the risks involved against the added \$ 32.- per month you need for a VPS. I would say a good quality VPS should be able to manage. Measure its network bandwidth and latency at various times of the day and week. Also see that it can deliver the full bandwidth from the (virtual) harddisk. A PHP accelerator is also a must.

That said, Moodle is based on the http://en.wikipedia.org/wiki/Moore%27s_law. You didn't mention the Moodle version you are planning, but if intend on joining the version run (a new major version every 6 months) you need to double the horse power every 18 months. Or buy ten times the power you need today, with that you can delay your EoL by 3 to 4 yeras.

Average of ratings: -
Re: 700 Concurrent users

Apologies for not mentioning the Moodle version I am using, it is Moodle 2.3.2.

I will look into a VPS as I think this is the best option for now but I am slightly worried as one of the comments suggested I would need more than one VPS, which would be far too expensive.

Average of ratings: -
Re: 700 Concurrent users
Hi

In the light of the new information you've provided in the other sub-thread:

The 700 mark has been determined by the number of participants from the UK (that's where we are based) other participants from around the world will not be able to attend at the specific time due to differences in time zone. They will have access to the recordings. The reason they are required to all be online at the same time is because the class will be live streamed and not available once it's finished.

I'm no more sure whether a VPS will stand that. Yes, unforunately your server need to be designed for the peak load, even if it lasts only an hour. If tight on budget I would start with a high end VPS and simulate 1000 users beforehand monitoring the load on the server and the performance at the user end. If failed, I'll go for a medium sized dedicated server, and so on.

The compulsory reading are lined to the introduction to this forum.

Why Moodle for a webinar, BTW?

(Moved the follow-up to the "Comparisons and Advocacy" forum. See "Moodle (or something else) for a webinar?" https://moodle.org/mod/forum/discuss.php?d=216102. Edited by Visvanath.)

Average of ratings: -
Re: 700 Concurrent users

If it was anything to do with me, I would be asking you to demonstrate/prove how you arrived at your 700 concurrent users. That has potential to cost you a lot of money - bad news if you are wrong.

What you are talking about is telling all 700 people that they MUST do the activity at exactly the same time. That would seem like an odd thing to do unless you want to deliberately stress-test Moodle

A 1000 users connecting when they like is really just a small site. An average sized shared hosting deal would be fine.

Average of ratings: -
Re: 700 Concurrent users

I assure you this number is not plucked out of thin air. Over the past two months we have used a signup form for the online class which will be held every week at the same time. At present the number of participants stands a little over 1000. The 700 mark has been determined by the number of participants from the UK (that's where we are based) other participants from around the world will not be able to attend at the specific time due to differences in time zone. They will have access to the recordings. The reason they are required to all be online at the same time is because the class will be live streamed and not available once it's finished. Therefore if they miss the live session, they've missed out which could then lead to them being removed from the programme. To be honest, we did not anticipate so much interest but now it seems we have to find a way to accomodate all these users. That's what I'm struggling with, as I can see this costing a lot of money.

Average of ratings: -
Re: 700 Concurrent users

Yes, this could be expensive. When you get advice on user numbers and Moodle it is frequently based on numbers over any 24 hour period rather than peak, so it is hard to calculate the cost and hardware required.

Average of ratings: -
Re: 700 Concurrent users

It's do-able. I would suggest an absolute minimum of a web server (Linux based) with at least 32G of RAM plus a second machine of at least the same size for the database. Run PostgreSQL if you can. Much more if Windows OS. Even better - two web servers like that, load balanced to be on the safe side.

Do note that this really is plucked out of the air and should be seen as a starting point. You would be much better doing a limited trial and monitoring carefully the load imposed.

Of course, to be blunt, your delivery model doesn't sound very sensible to me. Are you doing this in an attempt to stop people downloading the material? You do know it won't work, yes?

Average of ratings: -
Re: 700 Concurrent users

Jaffa: I have a production system like yours. I have 850 users all of them have the same activities at the same time. I have deployed a load balancer over Amazon AWS, so I just turn on more servers in the nights when more users are online. Only with peaks of 300 users concurrently, you need about 4 small instances under the load balancer.

Average of ratings: -