Re: how to tweak ARP timer on kernel 2.6.9
From: Eric Dumazet <hidden>
Date: 2010-03-09 22:10:21
Also in:
lkml
Le mardi 09 mars 2010 à 12:32 -0700, Tom Ammon a écrit :
Hi, I've been trying to figure out how to adjust the ARP timeout on kernel 2.6.9 and I found the following in /proc/sys/net/ipv4/neigh/ib0 (its an IB interface I am interested in changing) with the following values. This is on kernel 2.6.9-89ELsmp (RHEL4) :
When I test this, along with per-flow ECMP (using the iproute2 utils), I see that the ARP cache is timing out about every 10 minutes (I observe this by load balancing an iperf flow between two different gateway machines and then graphing the interface traffic)
10 minutes seems out of specs.
On a newer kernel, 2.6.18-164.11.1.el5 (RHEL5), I see mostly the same parms available, but a few new ones have been added. However, all of the parms that are the same name between the two kernels are the same values:
Yet when I observe the same traffic flow with this machine, the ARP cache times out about once per minute.
This seems normal, old kernels were a bit lazy about arp.
Is there another set of parameters somewhere that govern how often the kernel times out the ARP cache? If so, where might I find that? Is there any kernel documentation that talks about changing ARP timers on the linux kernel?
I would suggest : man 7 arp http://linux.die.net/man/7/arp base_reachable_time Once a neighbour has been found, the entry is considered to be valid for at least a random value between base_reachable_time/2 and 3*base_reachable_time/2. An entry's validity will be extended if it receives positive feedback from higher level protocols. Defaults to 30 seconds. gc_interval How frequently the garbage collector for neighbour entries should attempt to run. Defaults to 30 seconds. gc_stale_time Determines how often to check for stale neighbour entries. When a neighbour entry is considered stale it is resolved again before sending data to it. Defaults to 60 seconds. and "ip -s neigh"