SlideShare a Scribd company logo
1 of 17
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?
● What are they doing?
● How much growth is expected?
The mdl_log
● A wealth of information
● Many sites have > year of data
● Determine concurrency
● Determine % of activity types
● Visualize historical usage
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
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
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
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 site http://download.moodle.org/
– Sample course
– Sample user (username1)
– Test plan http://tinyurl.com/nbb8q3w
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
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
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
Moodle 2.6 and JMeter
● New integration available
● Creates test plan with many activity types
● Provides comparison reports
● Only single user / single course test?
Tools
● jMeter
● SQL queries + mdl_log
● PHP Accelerator
● Cacti, munin, nagios, etc
● CLI: top, sar, innotop, mysqltuner.pl etc
Questions?
● jonathan@elearningconsultancy.com
● Twitter: @moorejon
● Skype: moorejon07
What we do
● Expert advice and eLearning program review
● Evangelism and training
● Instructional Design
● Custom development
● System tuning
● Performance assessment

More Related Content

What's hot

2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the thingsPHP Conference Argentina
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Zing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat ArchitectZing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat ArchitectChau Thanh
 
Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Barney Hanlon
 
Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007Rocco Georgi
 
Active Data Stores at 30,000ft
Active Data Stores at 30,000ftActive Data Stores at 30,000ft
Active Data Stores at 30,000ftJeffrey Sica
 
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...Grand Parade Poland
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiyaajayrcgmail
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordPhil Pursglove
 
브라우저에 날개를 달자
브라우저에 날개를 달자브라우저에 날개를 달자
브라우저에 날개를 달자NAVER SHOPPING
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsBrettTasker
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7Phil Pursglove
 
Concept of flexible open api server with node.js
Concept of  flexible open api server with node.jsConcept of  flexible open api server with node.js
Concept of flexible open api server with node.js주용 오
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithNETWAYS
 
Presentation
PresentationPresentation
Presentationzladuric
 
Pop quiz, hotshot how fast can your word press site go
Pop quiz, hotshot  how fast can your word press site goPop quiz, hotshot  how fast can your word press site go
Pop quiz, hotshot how fast can your word press site goRobert Bailey
 

What's hot (20)

MSE
MSEMSE
MSE
 
2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Zing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat ArchitectZing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat Architect
 
Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014
 
Drupal performance
Drupal performanceDrupal performance
Drupal performance
 
Caching
CachingCaching
Caching
 
Caching in WordPress
Caching in WordPressCaching in WordPress
Caching in WordPress
 
Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007
 
Active Data Stores at 30,000ft
Active Data Stores at 30,000ftActive Data Stores at 30,000ft
Active Data Stores at 30,000ft
 
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen Oxford
 
브라우저에 날개를 달자
브라우저에 날개를 달자브라우저에 날개를 달자
브라우저에 날개를 달자
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7
 
Concept of flexible open api server with node.js
Concept of  flexible open api server with node.jsConcept of  flexible open api server with node.js
Concept of flexible open api server with node.js
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles Judith
 
Presentation
PresentationPresentation
Presentation
 
Pop quiz, hotshot how fast can your word press site go
Pop quiz, hotshot  how fast can your word press site goPop quiz, hotshot  how fast can your word press site go
Pop quiz, hotshot how fast can your word press site go
 

Similar to JMeter performance and scalability in Moodle Montana Moot 2014

Best Practices In Moodle Administration
Best Practices In Moodle AdministrationBest Practices In Moodle Administration
Best Practices In Moodle Administrationmoorejon
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Per Henrik Lausten
 
Extending Moodle Reporting
Extending Moodle ReportingExtending Moodle Reporting
Extending Moodle Reportingmoorejon
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, CriteoParis Open Source Summit
 
Ireland Moot 2013 Admin Workshop Morning Session
Ireland Moot 2013 Admin Workshop Morning SessionIreland Moot 2013 Admin Workshop Morning Session
Ireland Moot 2013 Admin Workshop Morning SessionRemote-Learner UK
 
Web performance optimization - MercadoLibre
Web performance optimization - MercadoLibreWeb performance optimization - MercadoLibre
Web performance optimization - MercadoLibrePablo Moretti
 
Webinar: Capacity Planning
Webinar: Capacity PlanningWebinar: Capacity Planning
Webinar: Capacity PlanningMongoDB
 
071410 sun a_1515_feldman_stephen
071410 sun a_1515_feldman_stephen071410 sun a_1515_feldman_stephen
071410 sun a_1515_feldman_stephenSteve Feldman
 
Capacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB ClusterCapacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB ClusterMongoDB
 
Sql server tips from the field
Sql server tips from the fieldSql server tips from the field
Sql server tips from the fieldJoAnna Cheshire
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud EraMydbops
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best PracitcesJustin Filip
 
MongoDB Capacity Planning
MongoDB Capacity PlanningMongoDB Capacity Planning
MongoDB Capacity PlanningNorberto Leite
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP PerformanceBIOVIA
 
Web performance mercadolibre - ECI 2013
Web performance   mercadolibre - ECI 2013Web performance   mercadolibre - ECI 2013
Web performance mercadolibre - ECI 2013Santiago Aimetta
 
(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool Management(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool ManagementBIOVIA
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with GatlingPetr Vlček
 

Similar to JMeter performance and scalability in Moodle Montana Moot 2014 (20)

Best Practices In Moodle Administration
Best Practices In Moodle AdministrationBest Practices In Moodle Administration
Best Practices In Moodle Administration
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
Extending Moodle Reporting
Extending Moodle ReportingExtending Moodle Reporting
Extending Moodle Reporting
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
 
Ireland Moot 2013 Admin Workshop Morning Session
Ireland Moot 2013 Admin Workshop Morning SessionIreland Moot 2013 Admin Workshop Morning Session
Ireland Moot 2013 Admin Workshop Morning Session
 
Managing Moodle Performance Testing Paul Stevens
Managing Moodle Performance Testing 	Paul StevensManaging Moodle Performance Testing 	Paul Stevens
Managing Moodle Performance Testing Paul Stevens
 
Web performance optimization - MercadoLibre
Web performance optimization - MercadoLibreWeb performance optimization - MercadoLibre
Web performance optimization - MercadoLibre
 
Webinar: Capacity Planning
Webinar: Capacity PlanningWebinar: Capacity Planning
Webinar: Capacity Planning
 
071410 sun a_1515_feldman_stephen
071410 sun a_1515_feldman_stephen071410 sun a_1515_feldman_stephen
071410 sun a_1515_feldman_stephen
 
Capacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB ClusterCapacity Planning For Your Growing MongoDB Cluster
Capacity Planning For Your Growing MongoDB Cluster
 
Capacityplanning
Capacityplanning Capacityplanning
Capacityplanning
 
Sql server tips from the field
Sql server tips from the fieldSql server tips from the field
Sql server tips from the field
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best Pracitces
 
MongoDB Capacity Planning
MongoDB Capacity PlanningMongoDB Capacity Planning
MongoDB Capacity Planning
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance
 
Web performance mercadolibre - ECI 2013
Web performance   mercadolibre - ECI 2013Web performance   mercadolibre - ECI 2013
Web performance mercadolibre - ECI 2013
 
(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool Management(ATS4-PLAT08) Server Pool Management
(ATS4-PLAT08) Server Pool Management
 
AutoDOPandRest
AutoDOPandRestAutoDOPandRest
AutoDOPandRest
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with Gatling
 

More from moorejon

Best new features in moodle 3.1
Best new features in moodle 3.1Best new features in moodle 3.1
Best new features in moodle 3.1moorejon
 
Using moodle badges
Using moodle badgesUsing moodle badges
Using moodle badgesmoorejon
 
Using moodle outcomes and competencies
Using moodle outcomes and competenciesUsing moodle outcomes and competencies
Using moodle outcomes and competenciesmoorejon
 
Git for Moodle Administrators
Git for Moodle AdministratorsGit for Moodle Administrators
Git for Moodle Administratorsmoorejon
 
Introduction to Moodle Development
Introduction to Moodle DevelopmentIntroduction to Moodle Development
Introduction to Moodle Developmentmoorejon
 
Introduction To Elis
Introduction To ElisIntroduction To Elis
Introduction To Elismoorejon
 
Securing Your Moodle
Securing Your MoodleSecuring Your Moodle
Securing Your Moodlemoorejon
 
Integrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise SystemsIntegrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise Systemsmoorejon
 

More from moorejon (8)

Best new features in moodle 3.1
Best new features in moodle 3.1Best new features in moodle 3.1
Best new features in moodle 3.1
 
Using moodle badges
Using moodle badgesUsing moodle badges
Using moodle badges
 
Using moodle outcomes and competencies
Using moodle outcomes and competenciesUsing moodle outcomes and competencies
Using moodle outcomes and competencies
 
Git for Moodle Administrators
Git for Moodle AdministratorsGit for Moodle Administrators
Git for Moodle Administrators
 
Introduction to Moodle Development
Introduction to Moodle DevelopmentIntroduction to Moodle Development
Introduction to Moodle Development
 
Introduction To Elis
Introduction To ElisIntroduction To Elis
Introduction To Elis
 
Securing Your Moodle
Securing Your MoodleSecuring Your Moodle
Securing Your Moodle
 
Integrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise SystemsIntegrating Moodle With Enterprise Systems
Integrating Moodle With Enterprise Systems
 

Recently uploaded

JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...anjaliyadav012327
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 

Recently uploaded (20)

JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
JAPAN: ORGANISATION OF PMDA, PHARMACEUTICAL LAWS & REGULATIONS, TYPES OF REGI...
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 

JMeter performance and scalability in Moodle Montana Moot 2014

  • 1. jMeter, Performance and Scalability in Moodle Jonathan Moore Founder
  • 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. The mdl_log ● A wealth of information ● Many sites have > year of data ● Determine concurrency ● Determine % of activity types ● Visualize historical usage
  • 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. 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. 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. Hands On ● Install jMeter ● Setup and run a simple jMeter test
  • 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.
  • 10.
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. Moodle 2.6 and JMeter ● New integration available ● Creates test plan with many activity types ● Provides comparison reports ● Only single user / single course test?
  • 15. Tools ● jMeter ● SQL queries + mdl_log ● PHP Accelerator ● Cacti, munin, nagios, etc ● CLI: top, sar, innotop, mysqltuner.pl etc
  • 17. What we do ● Expert advice and eLearning program review ● Evangelism and training ● Instructional Design ● Custom development ● System tuning ● Performance assessment