As you probably know we shipped Dynamics
The question that remains is what kind of bandwidth is needed when deploying RTC over WAN. As you probably also know we published some initial findings at the time of release for R2 (http://msdn.microsoft.com/en-us/library/gg502513.aspx). These numbers were pretty generic but still valid. Our tests were done by posting 10 sales orders programmatically. We did this on connections between 300/300 Mbit and 10/1 Mbit. Let me reiterate the most important findings:
Two factors make a difference from a network perspective:
With regard to latency the chart above shows that as we added latency between client and server our ability to utilize bandwidth decreased. This makes sense as added latency makes us wait for network I/O rather than server CPU cycles. The elbow seems to be somewhere between 75 and 125 ms latency.
For bandwidth we saw that the upstream bandwidth from the client to the server seemed to have a significant impact on the response time. Specifically we saw that if we throttled the bandwidth below 0,1 Mbit the response time almost doubled.
Now for the interesting part – how can you go about measuring the required bandwidth for your own workload. I will provide one example (which was also shown at Convergence Atlanta 2011 and Directions EMEA 2011).
First let us set up Performance Monitor to capture data for us:
- Launch Performance Monitor
- Create a new Data Collection Set (For more information see http://technet.microsoft.com/en-us/library/cc766404.aspx)
- Capture Bytes Sent/sec and Bytes Received/sec for Network Interface Counter
Make sure to capture the relevant NIC
- Change sampling to 1 sec
Now we are ready to run the test. For this example the test is just opening the RoleTailored client. Before you go ahead make sure that nothing else is consuming bandwidth at this point.
- Go back into Performance Monitor and start the capture
- Open the RoleTailored client and wait for it to fully render
- In performance monitor stop the capture
To view the results go back into Performance Monitor:
- Create Report in Performance Monitor using captured file
- Look at the numbers for Maximum for both Bytes sent and received
To transform these numbers into something useful some basic math will have to be applied.
The numbers in the report are bytes per second. To get to bits per second multiply the number by 8. To get to Kilobits per second divide by 1024 and finally to get to megabits per second divide by 1024 again.
As an example if the captured number was 162.276 as above this would mean:
This exercise can be applied to any operation that you would want to separate out in the RTC. If your remote users would want to post sales orders this is what you should measure. If they will be running specific reports you should go ahead and measure the required bandwidth for a single instance of that report.