Difference between revisions of "SitePerformanceMonitoringTools"
| Line 38: | Line 38: | ||
#* MediaWiki profiling | #* MediaWiki profiling | ||
#* Raw database queries | #* Raw database queries | ||
| + | |||
| + | ==Steps to DoneDone== | ||
| + | * Articulate the request pipeline | ||
| + | #* Identify each request in the pipeline | ||
| + | #* How to perform / retrieve data for each request | ||
| + | #* Assign acceptable benchmarks | ||
| + | |||
| + | * Aggregate pipeline benchmarks | ||
| + | |||
| + | * Push XML results to central HTTPS server (webservices) | ||
| + | ** Remote location / benchmark results stored in database | ||
[[Category:DevelopmentTeamProject]] | [[Category:DevelopmentTeamProject]] | ||
</noinclude> | </noinclude> | ||
Revision as of 21:07, 5 September 2007
What (summary)
Instrumentation that provides a history of performance statistics for each part of the page load pipeline.
Why this is important
The responsiveness and performance of the site makes a big difference in how many pages visitors will view, and how often they will come back. A poorly performing site will also wear out our active members causing some of them to leave.
DoneDone
Define good and acceptable times for pieces of the Performance pipe
- Max cold-request to fully rendered time for normal pages (including especially front page)
- 3 seconds is unacceptable
- Max Load Time for special goodness (Batch Patrol ... etc)
Record a history of how long to
- lookup DNS for www.aboutus.org, images.aboutus.org, ... from different parts of the world
- Setup a port 80 TCP connection with each of the squal boxes from different parts of the world
- Load the frontpage without any client caching
- Retrieve a memcache item from each combination of two squal boxes (one client, one memcached server)
- Load the core css files
- Load the core js files
...
Performance Priorities
- View normal page
- View random page
- Edit click until available
- Save click until rendered
- Render invalidated frontpage
Instrumentation Steps
- End to end on each
- Deploy instrumentation boxes in various locations
- Determine and instrument the pieces
- MediaWiki profiling
- Raw database queries
Steps to DoneDone
- Articulate the request pipeline
- Identify each request in the pipeline
- How to perform / retrieve data for each request
- Assign acceptable benchmarks
- Aggregate pipeline benchmarks
- Push XML results to central HTTPS server (webservices)
- Remote location / benchmark results stored in database

