Note: You are currently viewing documentation for Moodle 2.4. Up-to-date documentation for the latest stable version of Moodle may be available here: Performance testing moodle.org.

Performance testing moodle.org

From MoodleDocs
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Moodle.org hardware

The new servers for moodle.org consist of two machines directly linked by a 1Gb VLAN:

Web server

  • 2 x Quad Core Intel Xeon E5405 - 8 cores @ 2Ghz each
  • 2 x 146GB 15k RPM SAS drives in RAID 1 via PERC 6/i controller
  • 8Gb Registered ECC RAM

Database server

  • 1 x Quad Core Intel Xeon E5405 - 4 cores @ 2Ghz each
  • 3 x 146GB 15K RPM SAS drives in RAID 5 via PERC 6/i controller
  • 8Gb Registered ECC RAM

Server tests

Old Server New Servers
Test myisam myisam innodb postgres
slowqueries 1 old-moodle.org-slowtest1.png server10-slowtest1.png server10-slowtest-innodb.png More details (Needs different SQL)
perspective (all caching off)
   * 1402000 function calls
   * 11500 16KB files read from disk (cache)
   * 7900 regular expression replaces over 1KB of text
   * 6000 16KB files written to disk (cache)
   * 4880 get_record calls on the course table
   * 1030 insert_record calls on the course table
   * 240 update_record calls on the course table
   * 1293000 function calls
   * 11400 16KB files read from disk (cache)
   * 8200 regular expression replaces over 1KB of text
   * 6000 16KB files written to disk (cache)
   * 5530 get_record calls on the course table
   * 1590 insert_record calls on the course table
   * 250 update_record calls on the course table
   * 2057000 function calls
   * 14800 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 8500 16KB files written to disk (cache)
   * 2730 get_record calls on the course table
   * 2290 insert_record calls on the course table
   * 340 update_record calls on the course table
   * 2045000 function calls
   * 14800 16KB files read from disk (cache)
   * 16200 regular expression replaces over 1KB of text
   * 8700 16KB files written to disk (cache)
   * 2730 get_record calls on the course table
   * 1960 insert_record calls on the course table
   * 340 update_record calls on the course table
   * 2083000 function calls
   * 14500 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 9100 16KB files written to disk (cache)
   * 2790 get_record calls on the course table
   * 2010 insert_record calls on the course table
   * 330 update_record calls on the course table
   * 2063000 function calls
   * 14500 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 9100 16KB files written to disk (cache)
   * 2790 get_record calls on the course table
   * 2090 insert_record calls on the course table
   * 330 update_record calls on the course table
   * 2071000 function calls
   * 13700 16KB files read from disk (cache)
   * 16000 regular expression replaces over 1KB of text
   * 9200 16KB files written to disk (cache)
   * 1610 get_record calls on the course table
   * 940 insert_record calls on the course table
   * 190 update_record calls on the course table
   * 2092000 function calls
   * 13700 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 9200 16KB files written to disk (cache)
   * 1610 get_record calls on the course table
   * 940 insert_record calls on the course table
   * 190 update_record calls on the course table
perspective (all caching on)
   * 1403000 function calls
   * 10000 16KB files read from disk (cache)
   * 8300 regular expression replaces over 1KB of text
   * 5200 16KB files written to disk (cache)
   * 5270 get_record calls on the course table
   * 1390 insert_record calls on the course table
   * 220 update_record calls on the course table
   * 1382000 function calls
   * 11000 16KB files read from disk (cache)
   * 8200 regular expression replaces over 1KB of text
   * 5800 16KB files written to disk (cache)
   * 5640 get_record calls on the course table
   * 2140 insert_record calls on the course table
   * 250 update_record calls on the course table
   * 1997000 function calls
   * 14700 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 8800 16KB files written to disk (cache)
   * 19620 get_record calls on the course table
   * 2290 insert_record calls on the course table
   * 340 update_record calls on the course table
   * 2003000 function calls
   * 14700 16KB files read from disk (cache)
   * 16000 regular expression replaces over 1KB of text
   * 8800 16KB files written to disk (cache)
   * 19560 get_record calls on the course table
   * 1830 insert_record calls on the course table
   * 340 update_record calls on the course table
   * 2098000 function calls
   * 14800 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 8900 16KB files written to disk (cache)
   * 23170 get_record calls on the course table
   * 2030 insert_record calls on the course table
   * 330 update_record calls on the course table
   * 2132000 function calls
   * 14700 16KB files read from disk (cache)
   * 16000 regular expression replaces over 1KB of text
   * 8800 16KB files written to disk (cache)
   * 23270 get_record calls on the course table
   * 2040 insert_record calls on the course table
   * 330 update_record calls on the course table
   * 2112000 function calls
   * 14500 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 9100 16KB files written to disk (cache)
   * 22760 get_record calls on the course table
   * 910 insert_record calls on the course table
   * 190 update_record calls on the course table
   * 2115000 function calls
   * 14700 16KB files read from disk (cache)
   * 16100 regular expression replaces over 1KB of text
   * 9100 16KB files written to disk (cache)
   * 23360 get_record calls on the course table
   * 930 insert_record calls on the course table
   * 190 update_record calls on the course table
LoginView 300 (Jmeter with 300 users, 30 seconds ramp, 90% Line

NA

NA

  • 28.1 s / 29.5 s
  • 0% error
  • 27 s / 31.9 s
  • 0% error
LoginPost 300 (Jmeter with 300 users, 30 seconds ramp, 90% Line)

NA

  • 21.5 s
  • 0.11% error
  • 20.4 s / 27.1 s
  • 0% error
  • 30.6 s / 27.7 s (decreasing with each run)
  • 0% error