Prev: [PATCH] PPC: Skip over OF_DT_NOP when unflattening the device tree
Next: sysfs: Fixup broken chown tracking
From: Tom Ammon on 9 Mar 2010 14:40 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) : [root(a)up255 ib0]# cat anycast_delay 99 [root(a)up255 ib0]# cat app_solicit 0 [root(a)up255 ib0]# cat base_reachable_time 30 [root(a)up255 ib0]# cat delay_first_probe_time 5 [root(a)up255 ib0]# cat gc_stale_time 60 [root(a)up255 ib0]# cat locktime 99 [root(a)up255 ib0]# cat mcast_solicit 3 [root(a)up255 ib0]# cat proxy_delay 79 [root(a)up255 ib0]# cat proxy_qlen 64 [root(a)up255 ib0]# cat retrans_time 99 [root(a)up255 ib0]# cat ucast_solicit 3 [root(a)up255 ib0]# cat unres_qlen 3 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) 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: [root(a)gateway2 ib0]# cat anycast_delay 99 [root(a)gateway2 ib0]# cat app_solicit 0 [root(a)gateway2 ib0]# cat base_reachable_time 30 [root(a)gateway2 ib0]# cat base_reachable_time_ms 30000 [root(a)gateway2 ib0]# cat delay_first_probe_time 5 [root(a)gateway2 ib0]# cat gc_stale_time 60 [root(a)gateway2 ib0]# cat locktime 99 [root(a)gateway2 ib0]# cat mcast_solicit 3 [root(a)gateway2 ib0]# cat proxy_delay 79 [root(a)gateway2 ib0]# cat proxy_qlen 64 [root(a)gateway2 ib0]# cat retrans_time 99 [root(a)gateway2 ib0]# cat retrans_time_ms 1000 [root(a)gateway2 ib0]# cat ucast_solicit 3 [root(a)gateway2 ib0]# cat unres_qlen 3 Yet when I observe the same traffic flow with this machine, the ARP cache times out about once per minute. 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? Tom Ammon -- -------------------------------------------------------------------- Tom Ammon Network Engineer Office: 801.587.0976 Mobile: 801.674.9273 Center for High Performance Computing University of Utah http://www.chpc.utah.edu -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Eric Dumazet on 9 Mar 2010 17:20
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" -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |