jMeter, Performance and Scalability
in Moodle
Jonathan Moore
Founder
Analysing Usage
● We size for the highest peak
● Describe the peak scenario
● How many users?
● How short of interval?
● W...
The mdl_log
● A wealth of information
● Many sites have > year of data
● Determine concurrency
● Determine % of activity t...
Optimizing Performance
● Use a PHP accelerator
● Balance your memory budget
● Make InnoDB buffer pool same size as DB (see...
Some General Sizing Guidelines
● ~25-30 MB per apache client /w accelerator
● ~125-150 logged in users per core
● ~4-6 x m...
JMeter Benchmarking
● Simulates simultaneous user activity
● Gathers response and throughput results
● Not a browser can't...
Hands On
● Install jMeter
● Setup and run a simple jMeter test
Materials
– Java https://www.java.com/en/download/
– Jmeter
http://jmeter.apache.org/download_jmeter.cgi
– Moodle test sit...
What to Use for Testing?
● Copy of production for test site
– +Harder for server to cache
– -More likely errors in results...
Testing Changes
– Single test user and course may work well
– More accurate the test rig less likely to miss
problem
– Run...
Measuring Concurrent Capacity
● Test users, enrolment, and course population
should be on par with production site
● Test ...
Moodle 2.6 and JMeter
● New integration available
● Creates test plan with many activity types
● Provides comparison repor...
Tools
● jMeter
● SQL queries + mdl_log
● PHP Accelerator
● Cacti, munin, nagios, etc
● CLI: top, sar, innotop, mysqltuner....
Questions?
● jonathan@elearningconsultancy.com
● Twitter: @moorejon
● Skype: moorejon07
What we do
● Expert advice and eLearning program review
● Evangelism and training
● Instructional Design
● Custom developm...
JMeter performance and scalability in Moodle Montana Moot 2014
JMeter performance and scalability in Moodle Montana Moot 2014
Upcoming SlideShare
Loading in …5
×

JMeter performance and scalability in Moodle Montana Moot 2014

1,046 views

Published on

Using jMeter Moodle admins can help assess the capacity or potential capabilities of their Moodle site. With jMeter testing, admins can determine what kind of concurrency they should expect to be able to achieve with their current server configuration. This workshop would then tie into a one-hour session related to performance

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,046
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

JMeter performance and scalability in Moodle Montana Moot 2014

  1. 1. jMeter, Performance and Scalability in Moodle Jonathan Moore Founder
  2. 2. Analysing Usage ● We size for the highest peak ● Describe the peak scenario ● How many users? ● How short of interval? ● What are they doing? ● How much growth is expected?
  3. 3. The mdl_log ● A wealth of information ● Many sites have > year of data ● Determine concurrency ● Determine % of activity types ● Visualize historical usage
  4. 4. Optimizing Performance ● Use a PHP accelerator ● Balance your memory budget ● Make InnoDB buffer pool same size as DB (see mysqltuner.pl) ● Most sensitive to slow disks – Sessions – Moodle source – Moodle database
  5. 5. Some General Sizing Guidelines ● ~25-30 MB per apache client /w accelerator ● ~125-150 logged in users per core ● ~4-6 x more resources for a user's first minute ● ~5 logged in users supportable per apache child ● DB generally 1/10 size of Moodledata folder ● 5-10% of population is common peak for concurrency
  6. 6. JMeter Benchmarking ● Simulates simultaneous user activity ● Gathers response and throughput results ● Not a browser can't test javascript ● Can use to measure +/- of changes ● Can use to estimate expected concurrency, but harder
  7. 7. Hands On ● Install jMeter ● Setup and run a simple jMeter test
  8. 8. Materials – Java https://www.java.com/en/download/ – Jmeter http://jmeter.apache.org/download_jmeter.cgi – Moodle test site http://download.moodle.org/ – Sample course – Sample user (username1) – Test plan http://tinyurl.com/nbb8q3w
  9. 9. What to Use for Testing? ● Copy of production for test site – +Harder for server to cache – -More likely errors in results due to broken content – -Have to reset user passwords ● Synthetic test site – +Can use known good content less false errors – -Takes a lot of time and effort to prepare – -Smaller DB = easier server caching ● Hybrids
  10. 10. Testing Changes – Single test user and course may work well – More accurate the test rig less likely to miss problem – Run same test between changes – If results degrade don't move forward with change without careful review
  11. 11. Measuring Concurrent Capacity ● Test users, enrolment, and course population should be on par with production site ● Test set mix should reflect activity % of production site ● Calculate – Simultaneous logged in user count – Simultaneous logging in users count – They are different – Know what you need for each
  12. 12. Moodle 2.6 and JMeter ● New integration available ● Creates test plan with many activity types ● Provides comparison reports ● Only single user / single course test?
  13. 13. Tools ● jMeter ● SQL queries + mdl_log ● PHP Accelerator ● Cacti, munin, nagios, etc ● CLI: top, sar, innotop, mysqltuner.pl etc
  14. 14. Questions? ● jonathan@elearningconsultancy.com ● Twitter: @moorejon ● Skype: moorejon07
  15. 15. What we do ● Expert advice and eLearning program review ● Evangelism and training ● Instructional Design ● Custom development ● System tuning ● Performance assessment

×