From Techworld.com – How not to deploy an application over a WAN, “Although the medical appointment application was advertised as being client/server based, it wasn’t. In particular, the application was designed in such a way that the data in each field was sent character by character over the network. Hence, this was another example of an application that runs well over a LAN but presents performance problems over a WAN.”
We really wanted to avoid this with Rational Team Concert so we built a utility called the Jazz metronome to keep us honest. We wanted to make it easy to debug the client and find out when the server was being contacted (i.e. round-trips) and how long each server request took, so that we could easily see how chatty the client was being and fix the problem areas.
The Jazz metronome was previously part of the Source Control developer tools plug-in and wasn’t part of the Rational Team Concert client. But it turned out to be so useful that starting in the next milestone build following Beta 2 (M5, planned for late February), we’ll be including the tool in the milestone downloads so that our customers and developers can easily use it. You can enable the Jazz metronome from the Team > Jazz Source Control preference page which will enable a trim widget that shows the global round-trip count, then you can open the detail window from the trim widget to get service by service breakdown as shown in the video at the end of this entry.
The information displayed by the metronome tool is fairly low-level; it tracks which service and methods are called, the cumulative elapsed time in each request, and the slowest time. What’s also cool is that you can reset the counters and run something from the UI and see how chatty a particular feature is. With the service class grouping you can generally differentiate between work items, builds, process, or scm by looking at the service names.
Your feedback and potential defects are welcome and invited. To help you understand the information here are some usage hints:
There are some service calls that are shared between all components. TeamContentService is used to fetch and upload all content to and from the server. This method will be chatty when you load a repository workspace or upload work item attachements, so it will be more difficult to blame a particular component for being chatty. In many cases it’s okay to hit the server several times since we pipeline some calls and reuse the underlying HTTP connection. This is why it’s best to interpret the information based on slowness of some operations and not only based on the round-trips in daily usage.
Open metronome and start measuring away when things feel slow over a WAN. If the numbers look fishy, open a bug report (don’t forget to look for duplicates first)! There are probably some embarrassingly chatty actions lurking out there, but we’d rather know about them sooner rather than later so that we can fix them. Let’s all work to make Rational Team Concert WAN friendly.
Another feature of the metronome tool helps measure your connection speed to a Jazz server. This can help decide how responsive the client will be given the bandwidth and latency between the client and the server.
Status icon key: