Check out the new USENIX Web site. next up previous
Next: Experience with NT implementation Up: Implementation on Windows NT Previous: Constraining use of memory

Constraining available network bandwidth

Monitoring and controlling progress    As described in Section 3, we intercept socket APIs (accept, connect, send, and recv) to monitor and control available network bandwidth.

 Effectiveness of the sandbox    The effectiveness of the sandbox is evaluated on a pair of Pentium II (450 MHz) machines connected to a 10/100 auto-sensing Fast Ethernet hub. The application consists of a server and one or more clients in a simple ping-pong communication pattern. The peak bandwidth measured without the sandbox is 9.7MBps, whereas the sandbox permits effective control of bandwidth over the range 1Bps to 8.8MBps. The overhead of sandboxing due to API interception lowers the maximum achievable bandwidth by about 0.4%, measured by comparing the case when the application is running alone and the case when it is running inside the sandbox with a bandwidth threshold that will never be reached.

  

Figure 6: Measured bandwidth (a) for 1KB messages as requested bandwidth varies from 1KBps to 1000KBps, (b) for 1KB messages as requested bandwidth varies from 1000KBps to 8000KBps, (c) for 10KB messages as requested bandwidth varies from 1000KBps to 8000KBps.

\begin{figure*}
\centering
\begin{tabular}{ccc}
\mbox{\psfig{figure=figs/net...
...dth=0.33\textwidth} }
\\
(a)
&
(b)
&
(c)
\end{tabular}
\end{figure*}

Figure  6(a) shows the perceived bandwidth (at both server and client), measured by the application, as the sandbox constrains network bandwidth from 1KBps to 1000KBps. In the figure, the server and client bandwidth lines are virtually indistinguishable from each other and within 1% of the requested limit. Figure  6(b) shows the same measurement when bandwidth constraints are applied in the range 1000KBps to 8000KBps. When the requested bandwidth is below 4000KBps, the sandbox enforces the request with an error of at most 2%. However, error grows for higher bandwidths. For example, at 8000KBps, the sandbox can sustain a bandwidth at best 16% lower than requested. This is mainly due to the inaccuracy of the fine-grained sleep at sub-millisecond level on NT as well as the overhead of API interception. Figure 6(c), using 10KB messages, shows that the sandbox can be used to accurately sustain higher requested bandwidth as long as the message size scales proportionally. Here, the error between measured and requested bandwidths is less than 2%.
next up previous
Next: Experience with NT implementation Up: Implementation on Windows NT Previous: Constraining use of memory
Fangzhe Chang, Ayal Itzkovitz, and Vijay Karamcheti 
2000-05-15