Our Moodle site is starting to see heavy use and as a result, the site is starting to slow down. I know it is specific to this site as others on it have no problems with large workloads. What are some of the configuration options I should check for right off the bat when performance tuning Moodle?
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.
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!)