Forums | Mahara Community

Support /
Scaling the Mahara Server


Don Presant's profile picture
Posts: 255

16 September 2014, 4:46

HI All:

I've been asked by a client to provide some advice on server provisioning. Since this is out of my comfort zone, I've done some online research and have assembled the following list from references listed at the bottom of this message.

Is the sequence right? Am I missing anything crucial?

Any way to chunk transitions into milestones? (under 2,000 users, over 5,000, etc.)

Are there rules of thumb for: registered users/online users/active PHP requests?

Are there any key metrics to monitor and benchmark performance, along with easy ways to record these?

Current setup is LAMP (Redhat Linux/MySQL) on a VPS w 512MB RAM on dual-core CPU behind a load balancer.
They expect 500-600 users for the pilot, but final implementation could be 5,000-10,000 or more from a total student population of around 25,000

All feedback welcome!

Recommended measures (in sequential order)

  1. Increase server RAM to from 512MB to 1 GB
  2. Monitor simultaneous users (bearing in mind this is not the same as simultaneous php requests)
  3. Use (and make sure to tune) a PHP op-code cache such as APC
  4. Install Varnish or similar reverse proxy solution (depending on its compatibility with your load balancing solution)
  5. Make plans for how you will expand file storage capacity (SAN, etc) for the dataroot folder when required. Regularly graph changing file storage demand vs. capacity over time (e.g. monthly) to give yourself adequate time to implement your plan
  6. Move the MySQL database to a separate server
    (Postgres is a better database, but most admins don't recommend migrating if you're already set up on MySQL)
  7. Add web servers serving the same Mahara code, pointing at the same database and using the same dataroot directory behind a load balancer
  8. Investigate database master-slave arrangements, or clustering

REFERENCES

System Administrator's Guide/Scalability
https://wiki.mahara.org/index.php/System_Administrator%27s_Guide/Scalability

System Administrator's Guide/Requirements
https://wiki.mahara.org/index.php/System_Administrator%27s_Guide/Requirements#Hardware

Forums > Support - Server + Sizing help
https://mahara.org/interaction/forum/topic.php?id=709

Forums > Support
Hardware requirements for different volumes
https://mahara.org/interaction/forum/topic.php?id=6360

Mahara UK 2011 - Building Mahara for Multiple Institutions (LUNS)
http://www.slideshare.net/andrewnicols/mahara-uk-2011-building-mahara-for-multiple-institutions-8410961

Ruslan Kabalin re Moodle/Mahara
https://moodle.org/mod/forum/discuss.php?d=190338

Aaron Wells's profile picture
Posts: 896

16 September 2014, 11:29

Hi Don,

Unfortunately server administration is a bit out of my comfort zone as well. I usually stick to programming. But I think I recognize your list of recommended measures, as things that our admins are doing with our Mahara hosting here at Catalyst, so it looks correct to me. :)

Cheers,

Aaron

Kristina Hoeppner's profile picture
Posts: 4866

02 November 2014, 19:07

Hello Don,

These are all general guidelines, but that doesn't mean that they would fit for everyone as it depends quite a bit on how you are using your Mahara instance. For example, are lots of files, esp. large files uploaded by many users at once? Do you need to have a lot of connections open because 100 or more users access one page at exactly the same time?

It would be a good idea to perform a review of your settings, in particular database after some time of use once you have some solid data from usage. An initial recommended database setup could be made and then a benchmarking exercise performed 2-4 months into usage and then in semi-regular intervals or once usage has grown quite a bit to see if the initial settings need tweaking. A review of the server settings can then also be made. We'd be happy to assist you with that.

Cheers

Kristina

 

3 results