Performance Monitoring, Testing & Optimization - Part 1
Part 1 - Performance Monitoring
When somebody raises the issue of performance my first question to them is, "show me the data".Quite often I notice, there isn't sufficient data to support the perception. So my first suggestion is let's do some baselining.
Broadly speaking, performance of web based software solution can be split into two categories:
- Server Side Performance
- Client Side Performance
- Performance KPIs
- Performance monitoring tools
- Performance testing tools
- Test environments
- Load distribution model
- Test scenarios
- Reporting data
In this article (Part 1) we will cover #1 & #2 as the first step towards setting up a holistic performance testing practice is to know what to measure and how to measure it.
- Performance KPIs
Baselining performance requires monitoring a comprehensive set of client-side and server-side KPIs.
A combination of above mentioned tools should help you monitor all the performance KPIs mentioned in the previous section.
Server-side KPIs
KPI
|
Description
|
Response Time
|
Response Times for each transaction
in seconds
|
Hits Per second
|
Number of requests served under load
|
Bytes Throughput over time
|
Transactions per hour achieved under load
|
Active Threads
|
Number of test threads running
simultaneously
|
CPU Utilization
|
Processor time during the test run
|
Memory Utilization
|
Memory
Consumption during the test run
|
Client-side Metrics
KPI
|
Description
|
Time to First Byte (TTFB)
|
Duration in ms from the user making
the first HTTP request to the very first byte of the page being received
|
Time to First Meaningful Paint
|
Duration in ms when the page has
painted the first content
|
Time to First Interactive (TTFI)
|
Duration in ms until the page being loaded is considered usable and will respond to user input.
Similar to DOM interactive
|
Above the fold load time
|
Duration in ms for fully loading
the first sight on a web page.
|
Page load time
|
Total time taken to load a page in
ms
|
Page Size
|
Total Page
size
|
Http Requests
|
Total
number of Http requests in a specific page
|
Image Size & Total Images
|
Total number of images and the total size of the
images downloaded
|
JS (Total JS & Size)
|
Total
number of Java scripts executed and Total size of the JS downloaded
|
DOM Load Time
|
Total time
taken for the DOM load
|
CSS
(Total CSS & Size)
|
Total
number of CSS /CDN and Total size of the CSS /CDN downloaded
|
- Performance Monitoring Tools
The Ferrari of performance monitoring tools is New Relic's suite of products.
- Consider New Relic APM for server side monitoring.
- Consider New Relic Synthetics for client side monitoring.
Akamai's Soasta MPulse is another great tool for performance monitoring.
Additionally, consider Google's Lighthouse, WebPageTest for browser based client-side monitoring. These are free.
Browserstack also has an excellent suite of products for browser and mobile testing and monitoring.
Additionally, consider Google's Lighthouse, WebPageTest for browser based client-side monitoring. These are free.
Browserstack also has an excellent suite of products for browser and mobile testing and monitoring.
If you are hosted on Microsoft's Azure, adding Application Insights to the mix should satisfy your monitoring needs.
A combination of above mentioned tools should help you monitor all the performance KPIs mentioned in the previous section.
Comments
Post a Comment