Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Performance tuning Moodle

Our Moodle site is starting to get heavy traffic. As a result, the site is slowing down. What are some of the configuration options I should check right off the bat when performance tuning Moodle? I know it is specific to this site as others on it have no problems with large workloads.

like image 826
Josh Avatar asked Feb 03 '10 16:02

Josh


People also ask

How do I optimize my Moodle performance?

Note: The fastest and most effective change that you can make to improve performance is to increase the amount of RAM on your web server - get as much as possible (e.g. 4GB or more). Increasing primary memory will reduce the need for processes to swap to disk and will enable your server to handle more users.

How do I test my Moodle performance?

To test out the performance of the Moodle, go to “Site Administration > Reports > Benchmark”. The benchmark plugin is a good reference to check some parts in Moodle and out of Moodle on your server hardware. The plugin is highly appreciated and praised by the Moodle community members.


2 Answers

On Moodle's website, they have an extensive performance tuning webpage. I've including a list of a few suggestions that look intersting:

  • If you go to: http://YOURSERVERNAME.com/admin/dbperformance.php, moodle will give some performance statistics.
  • Consider adding more RAM or clustering your webserver.
  • Consider adding a php accelerator such as APC, PHPA, Xcache or eAccelerator.
  • Try to determine if the webserver or the database server is the bottleneck.

A moodle user also developed a good load testing script (this script is very system heavy and will tell you the maximum load that your server can handle). It can be found here.

like image 73
David-Zazeski Avatar answered Oct 07 '22 15:10

David-Zazeski


Adding APC php accelerator increased the performance of our server by 250% to 300%. immediately (amazing!) we are using CentOS 5.4 so it was only "yum install php-apc" (easy)

we also used mysqltuner.pl (blog.mysqltuner.com/) to tune MySQL server settings. hard to tell how much we gained here. it feels better.

we change MySQL internal DB Engine for the table mdl_user from MYISAM to InnoDB after we reached 12000 users (now we have 16000) it gave a huge positive performance impact on mdl_user related queries. (example: upload 600 new user now takes 1 min where it used to take 12min. huge improvement!)

like image 31
nadavkav Avatar answered Oct 07 '22 15:10

nadavkav