Difference between revisions of "SitePerformanceMonitoringTools"
(→Steps to DoneDone) |
|||
| Line 41: | Line 41: | ||
==Steps to DoneDone== | ==Steps to DoneDone== | ||
* Articulate the request pipeline | * Articulate the request pipeline | ||
| − | + | ** Identify each request in the pipeline | |
| − | + | ** How to perform / retrieve data for each request | |
| − | + | ** Assign acceptable benchmarks to each request | |
* Aggregate pipeline benchmarks | * Aggregate pipeline benchmarks | ||
| − | * Push XML results to central HTTPS server | + | * Push XML results to central HTTPS server |
** Remote location / benchmark results stored in database | ** Remote location / benchmark results stored in database | ||
| + | |||
| + | * Analyze pipeline benchmarks | ||
| + | ** Graph performance for each location | ||
| + | ** Detailed graph view on each request | ||
| + | ** XML output for monitoring integration | ||
| + | |||
| + | * Integrate into monitoring | ||
| + | ** Dashboard to identify overall health | ||
| + | ** Notifications via email/paging critical problem arises | ||
| + | |||
| + | ==Potential Hurdles== | ||
| + | * False positives | ||
| + | * Caching | ||
[[Category:DevelopmentTeamProject]] | [[Category:DevelopmentTeamProject]] | ||
</noinclude> | </noinclude> | ||
Revision as of 21:45, 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 to each request
- Aggregate pipeline benchmarks
- Push XML results to central HTTPS server
- Remote location / benchmark results stored in database
- Analyze pipeline benchmarks
- Graph performance for each location
- Detailed graph view on each request
- XML output for monitoring integration
- Integrate into monitoring
- Dashboard to identify overall health
- Notifications via email/paging critical problem arises
Potential Hurdles
- False positives
- Caching

