york university
DESCRIPTION
Tools for improving the performance of Moodle and other PHP applications Denis Boroja, Manager EAAS Peter Rowley, Director A&I Ellio Mourinho, Programmer EAAS. Enterprise Academic Applications, Applications & Integration, University Information Technology, York University, Toronto. - PowerPoint PPT PresentationTRANSCRIPT
1
Tools for improving the performance of Moodleand other PHP applicationsDenis Boroja, Manager EAASPeter Rowley, Director A&IEllio Mourinho, Programmer EAAS
Enterprise Academic Applications, Applications & Integration, University Information Technology, York University, Toronto
2
• York University is a large comprehensive university located in the northwest part of Toronto. It was established in 1959 as a non-denominational institution.
• It is a community with 48,000 undergraduate students, 5,900 graduate students and 7,000 support / admin staff.
• Each of York’s eleven Faculties is steeped in rich individual tradition and enjoys a high degree of autonomy
York University
3
• The Provost has been supporting e-learning with a special initiative
• The initiative is supported by four distinct units:
• Learning Technology Services (UIT)
• Teaching Commons (Provost)
• Enterprise Academic Application Services (UIT)
• Instructional Technology Centre (UIT)
York and E-Learning
4
• Pilot version 1.5 introduced in 2005 with a few Faculties.
• First production version (v1.6) introduced in 2006.
• Current 2014 Version is 2.5.3+ with MySQL 5.5
• All 11 different faculties are represented in Moodle.
Moodle @ York
5
Academic Year # courses used YoY
2009 1,605 -
2010 2,043 27%
2011 2,504 23%
2012 2,880 15%
2013 3,045 6%
Moodle @ York
Course Load Increase Year over Year
6
Academic Year # of users YoY
2009 41,517 -
2010 49,531 19%
2011 52,081 5%
2012 52,498 1%
2013 54,297 3%
Moodle @ York
Students Load Year over Year
7
Academic Year # of Instructors YoY
2009 1,029 -
2010 1,142 11%
2011 1,938 70%
2012 1,809 -7%
2013 1,973 9%
Moodle @ York
Instructor Load Year over Year
8
Moodle History at York
9
• Production • Application Servers
• Four Virtual Application Servers running on Ubuntu 12.04
• 20 GB RAM, 4 Virtual CPU Cores
• 20 GB local storage, external filer with 4.1 TB
• Database Servers• 2 Physical servers running on Ubuntu 12.04
• Master / Slave with real time replication service
• 72GB of RAM, 300 GB local, 230 GB for MySQL
• Load Balancer• LVS – configured for 25% traffic for each Application Server
• Use of Maintenance Pages during outages.
Core Application Architecture
10
• Camtasia Relay• Lecture recording tool used by instructors
• Stores link to a recording in Moodle
• Library • Link to YorkU library application.
• Returns list of resources, appropriate links and study resources.
• Turnitin• Assignment submission and plagiarism detection tool
External Links
11
Architecture Diagram
12
• www.Site24x7.com • Third party application used for Application heartbeat
monitoring. Records and tracks applications outages.
• AppDynamics • Third party application used for overall application / code
monitoring. Monitors and records application performance. Used for troubleshooting and optimization.
• Google Analytics • Used to monitor user interactions, response time and the
application load.
Tools
13
• Nagios• System level monitoring. (CPU, RAM, Traffic, Filer
mounts etc)
• jMeter • used for performance testing in QA environments.
Simulates up to 150% of the estimated max load.
Tools (cont.)
14
• Dashboard – real-time view of the application
AppDynamics
15
• Dashboard – real-time view of the application
AppDynamics
16
AppDynamics – Transaction Dashboard
17
AppDynamics – Transaction Overview
Good day Bad Day
18
AppDynamics – Transaction Overview
Good day Bad Day
19
• Transaction Level Monitoring
AppDynamics
20
LIVE DEMO
AppDynamics – Transactions Demo
21
AppDynamics – Reporting
22
AppDynamics – Reporting
23
AppDynamics – User Dashboard
24
AppDynamics – Configuration
25
AppDynamics – Configuration
26
Other application monitoring tools
• New Relic
• DynaTrace
Would anyone care to share their experiences with these?
27
• Used to measure and observe user interaction with application.
• Measure average application page response time.
• Measure current user volume (5 minute span).
• Track user behavior.
• GOAL: Ensure that the application web pages can support and carry the user volume.
Google Analytics
28
Google Analytics – Real-time
29
Google Analytics – Site Speed
30
Google Analytics – Page Details
31
• Session and Application caching using Memcache and MemcacheD
• Fine tune mdl_log.
• MySQL innoDB Changes
• Memory increase
• LDAP server improvements
• MySQL Oracle Support
Performance Tuning Changes