Moodle for a School of 5000 Students (not concurrent)

Moodle for a School of 5000 Students (not concurrent)

by Wa Sige -
Number of replies: 9

Hi,

I'm a complete Moodle Newbie and am looking for a setup that can cater 5000 Students. Seems most experts don't recommend One-Click Installers from Softalicious or Bitnami.

  • I'm thinking of choosing Digital Ocean's VPS but seems GoDaddy's is cheaper. Any differences
  • Can a single 8GB, 4 CPU VPS handle the load? 
  • Should I separate my Database and use a Load Balancer for this setup?
  • Should I use Kubernetes Clustering from Digital Ocean? 
  • Should I use a separate filesystem for the DB Server?

I only have basic understanding of Kubernetes but if deemed the right path, I will start and learn. I would like to ask for your expertise please

Average of ratings: -
In reply to Wa Sige

Re: Moodle for a School of 5000 Students (not concurrent)

by James Steerpike -
Picture of Particularly helpful Moodlers

Always intrigued by these "I want to create a Moodle for X thousand students and I am a newbie" requests.

First, a 5000 student install is going to require serious IT skills. At that size a Moodle partner would be a wise investment.

But Moodle is only a shell. Someone has to create the courses and train the teachers to use Moodle in their classrooms and offline. You can't just drop Moodle into a school and be teaching on the first day. Moodle may not even be the best choice for your school. Creating a parallel virtual learning environment won't come easy or cheap and the server will be only a fraction of the costs.

I suggest start with a trial, with a  few picked enthusiastic and IT sophisticated teachers. Get something going with limited objectives to ensure success and expand progressively. One server, simple set up. Cloud servers allow easy expansion so get more complicated as the needs arise.


Average of ratings: Useful (2)
In reply to James Steerpike

Re: Moodle for a School of 5000 Students (not concurrent)

by Wa Sige -
Hi James,

Thank you for your reply. Let me clear it a little bit. I am not a teacher, nor a complete expert on web. The teachers are seeking my assistance for using it online. They have been using it offline, 1 teacher per classroom. They just do not know how to move it online which is a necessity now due to the pandemic. I'm trying to help them because what they want is to buy a mid range server then buy a leased internet line to do some in house hosting . I do not recommend that because 1. they don't know linux and 2. it's gonna cost them more than they thought as they didn't consider backup power and cooling. I will not be the moodle admin, I'll just help out on the hosting part.
In reply to Wa Sige

Re: Moodle for a School of 5000 Students (not concurrent)

by James Steerpike -
Picture of Particularly helpful Moodlers

I think that clarifies it. Certainly a cloud VPS is the way to go and  avoid the shortcuts of the one click. Most of the work in the  installation of Moodle goes into a stable and secure LAMP stack.

The biggest drawback of purchasing your own server is working out what to buy. I have worked with DO and the ability to set a level of resources at the start of the day and being able to watch the graphs  is invaluable. My thoughts are start at a reasonable size and monitor performance carefully.

Some things to ask the teachers. Do they use it in class - which could result in user spikes. How many minutes do they estimate students are working on homework. How often do they set a quiz, one of the most demanding components on the server.

Average of ratings: Useful (1)
In reply to James Steerpike

Re: Moodle for a School of 5000 Students (not concurrent)

by Wa Sige -
Personally, I prefer VPS then resize as needed. I have explained that to the school. The big problem here is, they can't simply buy a small plan today then resize tomorrow because the process of them getting the budget to do this takes time. They said that it sometimes takes a whole month to get approval, then wait another week for the budget to be on their hands. Which is why, they want an up front quote for operational cost for a whole year. It is quite a challenge for me because I am not sure what may happen in a year.

Do they use it in class - which could result in user spikes. Yes
How many minutes do they estimate students are working on homework. This I do not know, what I know is they are going to use this as a permanent solution because students are not allowed at school.
How often do they set a quiz, one of the most demanding components on the server. I have to ask this.
In reply to Wa Sige

Re: Moodle for a School of 5000 Students (not concurrent)

by James Steerpike -
Picture of Particularly helpful Moodlers
This situation shows why estimating Moodle requirements is so hard.
Maybe 90% of the teachers won't use Moodle at all, working off Zoom and a textbook. A few add PDF and Word files to a course and students download and work on them. So almost any old server will be fine.
But with 5000 students unable to attend class, Moodle might be the main method of instruction. At 9 o'clock 3000 students and 150 teachers or more might log in with most only five minutes before and this number is constant for half a day. Teachers allocate quizzes to test their students for six minutes every hour so on average 300 students are working on a quiz, peaking two or three times higher at the beginning or end of a class. Teachers add videos to Moodle and expect students to use audio and video submissions to forums, All of this with pages loading within 2 seconds. And the school wants the whole thing to work from day one with no chance to trial or adjust and no agreed criteria for performance.
That is the software project from hell. If there is any chance a disaster came back on me, I would not go near it.
Average of ratings: Useful (3)
In reply to Wa Sige

Re: Moodle for a School of 5000 Students (not concurrent)

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
Hi

I saw that your enquiry got narrowed down in the other sub-thread. Still I am jotting down the immediate thoughts I had reading your OP.

There are various approaches to setting up a Moodle server:
- The Manager
Argue for the need, make promises, loosen the budget, buy the biggest server. Up side: Plenty of power for decades to come. Down side: It will continue killing polar bears even when he and the server are long gone.

- The Technologist
Amalgamate the latest technologies - containers are already too old, take a distributed nosql/hadooop data source with a front end done in the Aurelia framework based on microservices, and build a new architecture. Up side: impressive. Down side, a caucus race.

- The Engineer
Clean all the fancy things, if you know the basics and have experience to estimate the scope, start with a bare bone and grow with the project. Up side: Only that much resources as needed. Down side: Is not possible in building construction, for example. In the IT world, quite feasible.

You seem to prefer the third approach, but under two constraints. a) New to Moodle (registered here yesterday). b) The administration needs a quote for the budget in ahead. I would say, for a Moodle specialist, like a Moodle Partner, a) is no problem b) is the daily business. An added plus is that, they do/help the further development of Moodle. Ask for a VPS, so that the environmental impact is smaller.

You will find tons of background information by reading the compulsory documentation in the header of this forum, and also going through the very similar recent discussions here - you don't have to look very far, visit Is there a helpful "grid" of server specs vs users for Moodle?
Average of ratings: Useful (1)
In reply to Wa Sige

Re: Moodle for a School of 5000 Students (not concurrent)

by Mathew Gancarz -
Picture of Core developers

Just to cover the Kubernetes specific questions, don't use Kubernetes unless you know you need Kubernetes. It adds a whole layer of complexity and abstraction and dependencies that don't make sense unless you have a team of dedicated IT staff and hundreds of thousands of users.

Average of ratings: Useful (2)
In reply to Mathew Gancarz

Re: Moodle for a School of 5000 Students (not concurrent)

by Wa Sige -
Thank you all for your replies. I have discuss this with the school and am waiting for the their decision. I showed them both implementation of a single Droplet that runs Moodle all of the components, and a Moodle Bitnami Stack, under Google Cloud. Showed them the server administration part, the console(they are scratching their heads) and the price difference. They mentioned a hosting that provides payment via Bank Transfer and surprisingly, the hosting company mentioned that payment via Bank Transfer is NON-REFUNDABLE. I myself never thought of purchasing a long term plan with no refund. smile
In reply to Wa Sige

Re: Moodle for a School of 5000 Students (not concurrent)

by Guillermo Dova -
Hi,
5000 users may seem a lot, but in terms of server requirements it depends.
First I would recommend establishing what activities are going to be enabled to the users, in order to understand what load is the "server" going to be exposed to.
Also it is important to establish how users are going to participate in moodle, in order to understand a possible concurrency.

Possible scenario:
-moodle installation for a school
-all school activities are going to be coordinated through Moodle, so concurrency can be expected to be high (20-40%).
-activities enabled: videos, quizzes, assignments, messaging, chats

Identify high cpu/ram/disk/network activities:
-chats has high cpu usage (may be a good idea to avoid on the first phase implementation)
-videos has high network usage (may be a good idea to use vimeo or similar and embed on moodle, this way the high load is transferred to external service)
-assignments has high cpu/ram/network usage, and may be higher if assignments requires large files to be uploaded, and the possibility that many users upload at the same time. Also Disk (moodledata folder) size can grow very very fast, in this case it may be a good idea to implement a remote storage with this plugin https://github.com/catalyst/moodle-tool_objectfs
-quizzes has high cpu usage.

Historic usage:
based on a current moodle installation I currently host, has 1000 users, average 200 concurrent
stack: cpanel + lightspeed + vimeo for videos + digitalocean spaces
server specs: 2 cpu, 1.5 gb ram (average resource usage is 50% )
estimated average memory consumption per concurrent user: 7-10 mb
estimated average cpu usage: 1/2 cpu per 200 users

Estimated usage (to start, overestimate):
(based on historic usage and stack specs)
concurrent users: 30% (1500)
max memory usage: 15 gb
max cpu usage: 8cpu

Cronjob
Moodle has many background processes and must run every minute, consider this on your calculations.

Stack I will choose to start:
- 8 core cpu
- 24 gb ram
- disk 100gb
- software: cpanel + lightspeed + cloudlinux (this will give you absolutely control over the server and performance)
- moodle plugin: objectfs with digitalocean space with 250gb

About Cpanel
cpanel + lightspeed + cloudlinux will give you absolute control and security over the server.
Lightspeed will improve server performance 4x at least (compared to apache).
Cloudlinux monitors account usage and limits account resources, so if you have an overload you will still be able to login the server and check.

This is my opinion and is based on my experience, so take it as it is and do your math, good luck!
(will be great to know what you decided and how it worked when live)
Guillermo