Limits on jumbo mbuf cluster allocation
Garrett Wollman
wollman at freebsd.org
Wed Mar 13 05:15:01 UTC 2013
<<On Tue, 12 Mar 2013 23:48:00 -0400 (EDT), Rick Macklem <rmacklem at uoguelph.ca> said:
> Basically, this patch:
> - allows setting of the tcp timeout via vfs.nfsd.tcpcachetimeo
> (I'd suggest you go down to a few minutes instead of 12hrs)
> - allows TCP caching to be disabled by setting vfs.nfsd.cachetcp=0
> - does the above 2 things you describe to try and avoid the livelock,
> although not quite using an lru list
> - increases the hash table size to 500 (still a compile time setting)
> (feel free to make it even bigger)
> - sets nfsrc_floodlevel to at least nfsrc_tcphighwater, so you can
> grow vfs.nfsd.tcphighwater as big as you dare
Thanks, this looks very good. One quibble with the last bit: I'd do
that in a sysctl() handler rather than checking it every time through.
If somebody uses a debugger rather than sysctl to change tcphighwater,
they deserve what's coming to them. Also, I might suggest adding a
counter for how many times we had to go through the "try harder"
phase, so that the sysadmin has some indication that the defaults need
adjustment.
I will test this out later this week and see how it performs. I have
a user who has been able to reproducibly clobber servers before, so if
he has time and cycles available it should be pretty easy to tell
whether it's working or not.
-GAWollman
More information about the freebsd-net
mailing list