Check out the new USENIX Web site. next up previous
Next: Streaming MAGNeT Up: MAGNeT Performance Previous: Network Throughput

CPU Utilization

Under Linux, netperf estimates CPU load by creating a low-priority process which increments a counter. This process, being the lowest priority task in the system, should only execute when the CPU has nothing else to execute, so the counter is only incremented when the CPU would otherwise be idle. Thus, a low counter value implies a high CPU utilization, and a high counter value implies low CPU utilization. Using this feature with the above set of tests, we estimate the additional CPU load incurred by both MAGNeT and tcpdump. The increase in CPU load, averaged over the sender and receiver during the above tests, is shown in Figure 6.

Figure 6: Average Percent Increase in CPU Utilization
\includegraphics[width=\figwidth]{cpu.eps}

As can be seen, MAGNeT uses proportionally less CPU than tcpdump, which is expected given the results of our bandwidth tests. Also apparent is a decrease in CPU utilization when moving from 100-Mbps to 1000-Mbps. This drop is a result of the fact that our Gigabit Ethernet cards perform interrupt coalescing by default. That is, they wait for several packets to arrive from the network before interrupting the CPU. Thus, the cost of servicing the network device interrupt is amortized over several packets. This reduces the total amount of work performed by the CPU, as shown in Figure 6. Had interrupt coalescing been disabled, the average CPU utilization for both MAGNeT and tcpdump would have increased.


next up previous
Next: Streaming MAGNeT Up: MAGNeT Performance Previous: Network Throughput
Jeffrey R. Hay 2001-09-12