Academic Year # courses used YoY

advertisement
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,
1University Information Technology, York University, Toronto
York University
• 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
2
York and E-Learning
• 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)
3
Moodle @ York
• 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.
4
Moodle @ York
Course Load Increase Year over Year
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
Students Load 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
Instructor 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 History at York
8
Core Application Architecture
• 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.
9
External Links
• 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
10
Architecture Diagram
11
Tools
• 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.
12
Tools (cont.)
• 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.
13
AppDynamics
• Dashboard – real-time view of the application
14
AppDynamics
• Dashboard – real-time view of the application
15
AppDynamics – Transaction Dashboard
16
AppDynamics – Transaction Overview
Good day
17
Bad Day
AppDynamics – Transaction Overview
Good day
18
Bad Day
AppDynamics
• Transaction Level Monitoring
19
AppDynamics – Transactions Demo
LIVE DEMO
20
AppDynamics – Reporting
21
AppDynamics – Reporting
22
AppDynamics – User Dashboard
23
AppDynamics – Configuration
24
AppDynamics – Configuration
25
Other application monitoring tools
• New Relic
• DynaTrace
Would anyone care to share their experiences with these?
26
Google Analytics
• 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.
27
Google Analytics – Real-time
28
Google Analytics – Site Speed
29
Google Analytics – Page Details
30
Performance Tuning Changes
• Session and Application caching using Memcache and
MemcacheD
• Fine tune mdl_log.
• MySQL innoDB Changes
• Memory increase
• LDAP server improvements
• MySQL Oracle Support
31
Q/A
dboroja@yorku.ca
prowley@yorku.ca
mourinho@yorku.ca
32
Download