1 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
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 Current 2014 Version is with MySQL 5.5 All 11 different faculties are represented in Moodle. York
5 Academic Year# courses usedYoY 20091, ,04327% 20112,50423% 20122,88015% 20133,0456% York Course Load Increase Year over Year
6 Academic Year# of usersYoY , ,53119% ,0815% ,4981% ,2973% York Students Load Year over Year
7 Academic Year# of InstructorsYoY 20091, ,14211% 20111,93870% 20121,809-7% 20131,9739% York Instructor Load Year over Year
8 Moodle History at York
9 Production Application Servers Four Virtual Application Servers running on Ubuntu GB RAM, 4 Virtual CPU Cores 20 GB local storage, external filer with 4.1 TB Database Servers 2 Physical servers running on Ubuntu 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 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 dayBad Day
18 AppDynamics – Transaction Overview Good dayBad 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
32 Q/A