arp/ndp default hash size
Alexander V. Chernikov
melifaro at FreeBSD.org
Thu Nov 8 21:39:28 UTC 2012
On 08.11.2012 14:17, Andre Oppermann wrote:
> On 07.11.2012 23:48, Alexander V. Chernikov wrote:
>> Hello list!
>>
>> Currently size of arp/ndp hash is the following:
>> #define LLTBL_HASHTBL_SIZE 32 /* default 32 ? */
>>
>> This may be OK for end hosts, but this is definitely not enough for
>> router howadays. Especially
>> given that IPv6 hosts generate 2 ndp records.
>>
>> Output from 2 random v4 / v6 routers from my $job:
>> 2:23 [0] m at matisse arp -an | wc -l
>> 1494
>> 2:24 [0] m at singapore ndp -an | wc -l
>> 3999
>>
>> Given that LIST_HEAD is just a pointer, and we currently have single
>> global (actually per-VNET)
>> instance for every l3 proto, bumping hash to, say, at least 4096
>> should do no harm.
>
> A small list per hash bucket isn't bad. The hash should be about 1/4
> of the expected table size.
>
> One problem here may be the memory consumption on smaller systems. A
> very large hash table size may hurt and isn't needed for a few entries.
I was afraid of proposing too small hash size. 4k costs 16kbytes which
is not much nowadays :)
>
> For a compromise I'd say the default hash table size should be 256 or 512.
For me, 512 seems to be quite good default for generic box.
>
More information about the freebsd-net
mailing list