On 20.06.2013 15:37, Eugene Grosbein wrote:
On 20.06.2013 17:34, Eggert, Lars wrote:

real memory  = 8589934592 (8192 MB)
avail memory = 8239513600 (7857 MB)

By default, the igb driver seems to set up one queue per detected CPU. Googling 
around, people seemed to suggest that limiting the number of queues makes 
things work better. I can confirm that setting hw.igb.num_queues=2 seems to 
have fixed the issue. (Two was the first value I tried, maybe other values 
other than 0 would work, too.)

In order to uphold POLA, should the igb driver maybe default to a conservative 
value for hw.igb.num_queues that may not deliver optimal performance, but at 
least works out of the box?

Or, better, make nmbclusters auto-tuning smarter, if any.
I mean, use more nmbclusters for machines with large amounts of memory.

That has already been done in HEAD.

The other problem is the pre-filling of the large rings for all queues
stranding large amounts of mbuf clusters.  OpenBSD starts with a small
number of filled mbufs in the RX ring and then dynamically adjusts the
number upwards if there is enough traffic to maintain deep buffers.  I
don't know if it always quickly scales in practice though.

--
Andre

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to