Input on Large Scale Install 30,000+ users

Input on Large Scale Install 30,000+ users

by Timothy Guy -
Number of replies: 8

Looking at Moodle for our school district and have a few questions. We have already implemented it in a few schools, but need some more info on scaling.

We will be using communication with Active Directory for authentication.
Should there be seperate installs of moodle for each school or is it possible to have one install and breakup the different schools as categories? One install would make upgrades easier, but may become a monster.

If it is one install, can students be grouped so teachers would just see the students within their school?

Thanks for any input.

Average of ratings: -
In reply to Timothy Guy

Re: Input on Large Scale Install 30,000+ users

by Justin Reeve -

We have over 40 schools, and just use one Moodle installation. Just make sure you have a decent server. I didn't even bother breaking up the schools by categories.

Your situation may differ, but what I did was just create unique idnumbers that include the school and course. Then an external enrollments database automatically assigns everyone to the correct course. They don't even need to see the categories or pick which school they attend to see their courses, and the courses get auto-created when the first participant logs in. Right now, I have over 5000 classroom courses (most aren't being used, but are there if the teacher needs them), and it's been working great.

In reply to Justin Reeve

Re: Input on Large Scale Install 30,000+ users

by Ricardo Caiado -
Picture of Particularly helpful Moodlers
Justin,

What is your idea of a decent server for 30.000 users?

All the best,

Ricardo
In reply to Ricardo Caiado

Re: Input on Large Scale Install 30,000+ users

by Justin Reeve -

It really depends on how you're using it. Are there going to be fully online classes, where students sporadically access it during the day? Do you expect this to be used during class, where many students will hit it to take, e.g., in-class quizzes all within seconds of each other? We have a hybrid learning environment, and at any point can probably have 120 users accessing the server at the same second. It runs on a virtual server with 4GB RAM, 3GHz CPU, and APC loaded. Works more than well enough.

In reply to Justin Reeve

Re: Input on Large Scale Install 30,000+ users

by Ricardo Caiado -
Picture of Particularly helpful Moodlers
Our scenario will be something like fully online classes, where students sporadically access it during the day.

In your setup is the web app server and database server running on the same VM?

What about database settings? Is there any fine tunning? Are you using MyISAM or InnoDB?

In reply to Ricardo Caiado

Re: Input on Large Scale Install 30,000+ users

by Myles Carrick -
hi Ricardo,

If you're looking to manage a particularly large installation, I think you'll find there is real advantage in thinking about postgres. You might find there's a little steeper learning curve, but our experience over many years of working with largish Moodle installations is that postgres will save you a lot of pain, particularly with large numbers of concurrent users.
(an oldie but a goodie from the MoodleDocs is at http://docs.moodle.org/en/Arguments_in_favour_of_PostgreSQL - worth the read - as is Nigel's linked post at Mahara.org).

As for separate/combined VMs, I'd definitely start with them separated. You'll find that it gives you the greatest flexibility and ability to monitor and tune performance.

Myles
In reply to Myles Carrick

Re: Input on Large Scale Install 30,000+ users

by Ricardo Caiado -
Picture of Particularly helpful Moodlers
Hi Myles,

Many thanks for your advice.

Lets say I already have a Moodle instalation using MySQL. How difficult it is to migrate from MySQL to Postgres?

All the best,

Ricardo

In reply to Ricardo Caiado

Re: Input on Large Scale Install 30,000+ users

by Myles Carrick -
hi Ricardo,

Migrating is a little non-trivial, but there are a number of the Moodle Partner crews here who've done it a stack of times - including my old compadres at Catalyst IT.

There are loads of links at the Postgres wiki http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#MySQL

The last couple of times I've moved a database from MySQL, I've actually used Taps (https://github.com/ricardochimal/taps) - it's a ruby-based solution from the guys at http://heroku.com - and works really nicely. When you're done, Moodle also has a suite of tools check for missing indexes, foreign keys, etc (in Site Admin => Development => XMLDB Editor).

There are others on this list who I'm sure can give other / further advice and assistance.

Cheers,

Myles