Next: Experience with NT implementation
Up: Implementation on Windows NT
Previous: Constraining use of memory
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.
|
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: Experience with NT implementation
Up: Implementation on Windows NT
Previous: Constraining use of memory
Fangzhe Chang, Ayal
Itzkovitz, and Vijay Karamcheti
2000-05-15