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.
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.
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.
On Moodle's website, they have an extensive performance tuning webpage. I've including a list of a few suggestions that look intersting:
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.
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!)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With