Moodle performance testing -- 2.4.6 vs. 2.5.2 vs. 2.6dev

Justin -- 25 September 2013

Yesterday I posted some updated performance information about currently released versions of Moodle and Tim Hunt from The Open University asked me if I could run the same tests on the latest in-development Moodle 2.6 code.

So I went ahead and re-ran my automated tests using the same setup as I had previously. In this case, as it was meant to be a straight comparison of the various releases of Moodle, I kept the database backend consistent across the tests. This time I also changed the methodology slightly by restarting the web server before each initial page load to clear out the PHP APC opcode cache to get the first page to be indicative of a worst case scenario where someone is loading a page without anything being cached neither in Moodle nor within your opcode cache. In previous tests the web server was not restarted between tests and those opcode caches were attempted to be pre-warmed before the initial testing started.

The Moodle versions compared here are:

This is meant to be a preview of the performance for Moodle 2.6 as it is is currently in a pre-alpha state. The code freeze is scheduled for Monday Oct. 7 2013 after which the QA testing phase will begin. For more details refer to the Moodle Roadmap.

For details on the testing environment, please refer to my original post – Testing environment. The only difference between that original listing and the setup I used for these tests is that I was exclusively using MariaDB 5.5.33a_0 and PHP 5.4.20_0 as installed from MacPorts.

You can use the code I created for these tests as it’s publicly available on my Github account – moodle_perf_scripts.

Testing results

1. Unauthenticated user site index page

2. Login process for a site administrator

3. Authenticated site administrator site index page

NOTE: the numbers for this test might be slightly deceiving. The settings used for the display on the site index page when logged in produce different results in 2.4.x and 2.5.x. In Moodle 2.4, a count of the number of courses was displayed along with a search box. In 2.5.1 a large number of the courses are listed on that page which produces much more database access. This is why the numbers for 2.5.2 and 2.6dev are much worse than 2.4.6.

4. Authenticated student site index page

5. Authenticated site administrator course view

6. Authenticated site administrator gradebook view

Analysis

Moodle 2.6 (as of this writing) in general seems to be slightly faster than 2.5 and use slightly more memory but remains worse than 2.4. For the big pages being tested the performance is much closer to 2.5 than it is to 2.4 so the improvements have been relatively small but still moving in the right direction.