Visual Round Trip Analyzer – Scorecard

I happened to use this new performance tool called Visual Round trip analyzer for one of my recent projects. Here’s a little description given on the VRTA download page.

The Visual Round Trip Analyzer tool helps web developers and testers visualize the download of their page, identify best practices and changes that improve web performance. The network Round-Trip between the client and server(s) is the single biggest impact to web page performance – much greater than server response time. VRTA examines the communications protocol, identifying the causes of excessive round-trips, and recommending solutions. Performance engineers, testers, developers, operations personnel should use VRTA to conduct their web performance analysis. VRTA sits on top of NetMon 3.2 which is also released publically for free. VRTA abstracts the use of Netmon so the user does not need to know the details of Netmon but can simply click to start/stop the capture. VRTA has three primary features 1) a main chart which displays http traffic in 3 dimensions, 2) an All Files view that shows critical measurements for each file loading, and 3) an Analysis report that indicates which file transfers are exceptions to best practice rules.

More information on uses of VRTA can be found at

https://msdn.microsoft.com/en-us/magazine/dd188562.aspx

Simple steps to use VRTA

1. Install VRTA.

2. Do the Netmon capture of the web application you want to analyze.

3. Load the netmon capture .cap file in VRTA.

4. Generate the VRTA report.

One of the coolest feature of VRTA is the Performance Scorecard it generates. This scorecard gives details on where you application stands and how the performance of the application can be improved. Following is the scored card I obtained for one of the projects I worked on.

Bandwidth Efficient Rating (Score =F)

Bandwidth Efficiency Rate is a primary indication of how well a web page is able to utilize the available bandwidth. Applications that do not follow the best practices of downloading on parallel TCP ports, using Keep-Alives, larger files, etc will not sustain high bit rates on longer latency WANs. A score of "A" is given to 80% BER and above. BERs of 40% and below are given a score of "F". The math for this rule is BER = AvgBitRate / MaxBitRate / Avg Compressibility. Uncompressed file content is discounted

Compressibility rule (Score =F)

This rule checks for uncompressed files. Most JS, CSS, HTM, and XML files can be compressed 2x or more. Compression of these static files reduces server CPU and Egress. A grade of A is given if all files are compressed. An F grade indicates an average compressibility of greater than 1.4. Please note, many proxy servers will forward uncompressed files to the user even if the original files were compressed. It's better to do Performance testing outside of corporate proxies.

Expiration date rule (Score =F)

This rule checks for expiration dates. When a user returns to a site, many of the needed files are already in the cache and will be reused, but first the browser will check to see if the file is still good. If no expiration dates is found, the browser will send a Get-If-Modified request to the server. Most files will not have been updated and will get a 304-Not-Modified. This wastes time and server resources. Set Expiration dates to 3 years out, then change the file name, path, or argument string to force a new file version download. Max-Age is an alternative to Expiration dates and is also checked. A grade of A is given for files that have greater than 1 year dates.

 

Average TCP port rule (Score =F)

This rule measures the average number of parallel connections that are used to download files. More ports in parallel instead of serial allows for better bandwidth utilization. The HTTP1.1 Protocol limits two parallel connection to each sub domain. To download more files in parallel one can download from several sub domains. Please note that IE8 and Firefox 3 do not adhere to the HTTP connection limitation anymore. Applications can also limit the number of ports by blocking on individual files. A score of "A" is given for an average of 5 concurrent ports and an "F" for 1 Port.

 

Redirect rule (Score = A)

This rule checks for excessive HTTP redirects. Each redirect causes two network roundtrips between browser and server, and therefore slows down page loading. A score of "A" is given if no redirects are used.

Unblock JS rule (Score = A)

This rule checks for excessive HTTP redirects. Each redirect causes two network roundtrips between browser and server, and therefore slows down page loading. A score of "A" is given if no redirects are used.

 

Time to first byte rule (Score = D)

This rule checks the Server response time. TTFB is the time from the Get packet until the first response packet. Subtracting the TCP connect time from the TTFB gives the Server response time. TTFB - TCP < 30ms is scored as an "A", while > 100ms is an "F".

Average file size rule (Score = A)

This rule checks for the average file size. Larger files are able to use TCP slow start to full advantage while small files spend most of their time round-tripping. An average file size of 5 KB gets an "A" while < 2KB is an "F".

 

HTTP Keep-Alive rule (Score = F)

This rule checks if HTTP Keep-Alives (KA) are on. Turning off KA may improve the server memory footprint but it causes the user to increase the number of round-trips, often doubling the number. If TCP ports are used to load only one file and then new ports to the same domain are opened, then the score will be "F", else "A".

 

Image Clustering rule (Score = A)

This rule checks the number of small image files. As in the 'Avg File Size' rule, small files download slower than larger files. Consolidate many small files into fewer larger files to take advantage of TCP slow-start.

Packet loss rule (Score = A)

This rule checks for retransmitted packets. Any packet loss significantly degrades page load time for users that are physically far away from the hosting datacenter, such users in China accessing a web site in California. A score of "F" is given if Packet loss is greater than 3%.

 

White spaces rule (Score = F)

This rule checks for excessive white space. These are tabs, newlines, remarks, etc. A score of "F" is given if more than 10% of the text downloaded is whitespace.

 

Favicon.ico rule (Score = A)

This rule checks for excessive white space. These are tabs, newlines, remarks, etc. A score of "F" is given if more than 10% of the text downloaded is whitespace.

Upstream single packet rule (Score = A)

This rule checks the size of the uploaded Get requests. The max payload for an Ethernet packet is 1460 Bytes. When large cookies or http headers are used this can expand the Get to more than one packet. Since upload bit rates are often much smaller than download, this becomes significant. A score of "F" is given if more than one packet is used for the Get request.