[Beowulf] Home beowulf - NIC latencies

Josip Loncaric josip at lanl.gov
Fri Feb 4 11:57:28 PST 2005


Vincent Diepeveen wrote:
> At 00:29 4-2-2005 -0800, Bill Broadley wrote:
>>
>>Do you know that gigabit is too high latency?

Gigabit Ethernet adapters often need tweaking to deliver reasonable 
latency, bandwidth, and CPU utilization.

For example, if your system uses the e1000 driver (Intel's gigabit 
Ethernet), the default setting is "dynamic Interrupt Throttle Rate" -- 
which means that the card will delay interrupting the CPU by up to about 
130 microseconds after receiving a packet.  Moreover, the "dynamic" part 
causes the network chip microcode to vary this delay in multiples of 
about 16 microseconds, so that different packets will generally 
experience different receive delays.

For the e1000 driver, 
https://lists.dulug.duke.edu/pipermail/dulug/2004-August/015415.html 
recommends using "options e1000 InterruptThrottleRate=80000" (add this 
line to /etc/modules.conf).  Users of this driver may also want to check 
Intel's parameters for e1000 listed at 
http://www.intel.com/support/network/sb/cs-009209.htm#parameters -- just 
don't assume that the default values are appropriate for cluster use.

Other gigabit Ethernet adapters have similar interrupt mitigation 
strategies, all designed to gracefully cope with high packet rates at 
high network speeds.  For cluster use, adjustments are usually advisable.

The basic Rx interrupt mitigation scheme is this: the receiver's CPU 
won't be interrupted until at least N packets have arrived or M 
microseconds have elapsed (whichever comes first).  This clearly adds up 
to M microseconds to network latency.  BTW, one often sees N=6 
(otherwise NFS performance can seriously degrade) and M>=16.  Other 
variants of this basic scheme are possible; but they all mean increased 
latencies.

Finally, don't forget the Tx side interrupt mitigation, or else the 
sending CPU might not be told promptly that it's OK to send more.  The 
default Tx settings are probably fine for full size packets, but if your 
applications send lots of small packets, tweaking your network driver's 
Tx settings may help.

Sincerely,
Josip



More information about the Beowulf mailing list