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.
3 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.

- 254
- 1
- 2
-
2admin/dbperformance.php didn't work for my installation (Moodle 2.4). Has it been removed? – Russell Silva Mar 15 '13 at 23:15
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!)

- 456
- 7
- 9
Use "Moodle Universal Cache". It speeds up moodle to certain extent. This feature is available moodle 2.4 and onward. Here is the official documentation link http://docs.moodle.org/24/en/Caching
You can also try using memcached with moodle.Although not straight out of the box available, yet memcache is one of the standard ways of using ram for speeding up database access.

- 8,806
- 10
- 50
- 56