----- Original Message -----
From: "Andre Oppermann" <an...@freebsd.org>
To: "Steven Hartland" <kill...@multiplay.co.uk>
Cc: "Alfred Perlstein" <alf...@ixsystems.com>; <sta...@freebsd.org>;
<r...@freebsd.org>; <nones...@longcount.org>
Sent: Thursday, July 11, 2013 1:47 PM
Subject: Re: status of autotuning freebsd for 9.2
On 11.07.2013 11:08, Steven Hartland wrote:
----- Original Message ----- From: "Andre Oppermann" <an...@freebsd.org>
On 08.07.2013 16:37, Andre Oppermann wrote:
On 07.07.2013 20:24, Alfred Perlstein wrote:
On 7/7/13 1:34 AM, Andre Oppermann wrote:
Can you help me with with testing?
Yes. Please give me your proposed changes and I'll stand up a machine and give
feedback.
http://people.freebsd.org/~andre/mfc-autotuning-20130708.diff
Any feedback from testers on this? The MFC window is closing soon.
Few things I've noticed most of which look like issues against the original
patch and not the MFC but worth mentioning.
1. You've introduced a new tunable kern.maxmbufmem which is autosized but
doesnt seem to be exposed via a sysctl so it looks like there is no way
to determine what its actually set to?
Good point. I've made it global and exposed as kern.ipc.maxmbufmem (RDTUN).
2. There's a missmatch between the tuneable kern.ipc.nmbufs in tunable_mbinit
and the sysctl kern.ipc.nmbuf i.e. no 's'.
That's a typo, fixed.
3. Should kern.maxmbufmem be kern.ipc.maxmbufmem to sit along side all of
the other sysctls?
Yes, see above.
4. style issues:
* @@ -178,11 +202,13 @@
...
if (newnmbjumbo9 > nmbjumbo9&&
Thanks. All fixed in r253204.
Finally out of interest what made us arrive at the various defaults for each
type as it looks like the ratios have changed?
Before it was an arbitrary mess. Mbufs were not limited at all and the others
to some random multiple of maxusers with the net limit ending up at some 25,000
mbuf clusters by default.
Now default overall limit is set at 50% of all available min(physical, kmem_map)
memory to prevent mbufs from monopolizing kernel memory and leave some space for
other kernel structures and buffers as well as user-space programs. It can be
raised to 3/4 of available memory by the tunable.
2K and 4K (page size) mbuf clusters can each go up to 25% of this mbuf memory.
The former is dominantly used on the receive path and the latter in the send
path.
9K and 16K jumbo mbuf clusters can each go up to 12.5% of mbuf memory. They are
only used in the receive path if large jumbo MTUs on a network interface are
active.
Both are special in that their memory is contiguous in KVM and physical memory.
This becomes problematic due to memory fragmentation after a short amount of
heavy
system use. I hope to deprecate them for 10.0. Network interfaces should use
4K
clusters instead and chain them together for larger packets. All modern NICs
support that. Only the early and limited DMA engines without scatter-gather
capabilities required contiguous physical memory. They are long gone by now.
The limit for mbufs itselfs is 12.5% of mbuf memory and should be at least as
many as the sum of the cluster types. Each cluster requires an mbuf to which
it is attached.
Two examples on the revised mbuf sizing limits:
1GB KVM:
512MB limit for mbufs
419,430 mbufs
65,536 2K mbuf clusters
32,768 4K mbuf clusters
9,709 9K mbuf clusters
5,461 16K mbuf clusters
16GB RAM:
8GB limit for mbufs
33,554,432 mbufs
1,048,576 2K mbuf clusters
524,288 4K mbuf clusters
155,344 9K mbuf clusters
87,381 16K mbuf clusters
These defaults should be sufficient for even the most demanding network loads.
For additional information see:
http://svnweb.freebsd.org/changeset/base/243631
Thanks for that Andre and thanks for doing this work its something thats been
sorely
needed for a long time.
Am I right is saying there is now the new concept of max mbufs? If so can we get
this added to the output of netstat -m if it already isn't?
I also think this is worth a mention in UPDATING too given the "defaults" are
now becoming sensible ;-)
Regards
Steve
Regards
Steve
================================================
This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it.
In the event of misdirection, illegible or incomplete transmission please
telephone +44 845 868 1337
or return the E.mail to postmas...@multiplay.co.uk.
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"