On Wed, 2 Mar 2011 21:52:03 +0900
Ryan McBride <mcbr...@openbsd.org> wrote:

>| On Mon, Feb 28, 2011 at 12:49:01PM +0100, Manuel Guesdon wrote:
>| > OK. Anyway NIC buffers restrict buffered packets number. But the problem
>| > remain: why a (for exemple) dual Xeon E5520@2.27GHz with Intel PRO/1000
>| > (82576) can't route 150kpps without Ierr :-)
>| > http://www.oxymium.net/tmp/core3-dmesg
>| 
>| I've done some more comprehensive testing and talked to some other
>| developers, and it seems that 150kpps is in the range of what is
>| expected for such hardware with an unoptimized install.

Thank you for the help !


>| One thing that seems to have a big performance impact is
>| net.inet.ip.ifq.maxlen. If and only if your network cards are all
>| supported by MCLGETI (ie, they show LWM/CWM/HWM values in 'systat
>| mbufs', you can try increasing ifq.maxlen until you don't see
>| net.inet.ip.ifq.drops incrementing anymore under constant load.

Yes all my nic interfaces have LWM/CWM/HWM values:
IFACE             LIVELOCKS  SIZE ALIVE   LWM   HWM   CWM
System                        256 83771        5502
                               2k   160        1252
em0                      37    2k     4     4   256     4
em1                     258    2k     4     4   256     4
em2                  372751    2k     7     4   256     7
em3                    8258    2k     4     4   256     4
em4                   25072    2k    63     4   256    63
em5                    3658    2k     8     4   256     8
em6                  501288    2k    24     4   256    24
em7                      22    2k     4     4   256     4
em8                   36551    2k    23     4   256    23
em9                   52053    2k     5     4   256     4


I've already increased to 2048 some time ago with good effect on ifq.drops 
but even when ifq.drops doesn't increase, I still have
Ierrs on interfaces (I've just verified this right now) :-)
I've made some change to em some time ago to dump card stats with -debug
option and it give me this stuff like this:
-----------------------
em4: Dropped PKTS = 0
em4: Excessive collisions = 0
em4: Symbol errors = 0
em4: Sequence errors = 0
em4: Defer count = 3938
em4: Missed Packets = 17728103
em4: Receive No Buffers = 21687370
em4: Receive Length Errors = 0
em4: Receive errors = 0
em4: Crc errors = 0
em4: Alignment errors = 0
em4: Carrier extension errors = 0
em4: RX overruns = 1456725
em4: watchdog timeouts = 0
em4: XON Rcvd = 31813
em4: XON Xmtd = 2304158
em4: XOFF Rcvd = 935928
em4: XOFF Xmtd = 20031226
em4: Good Packets Rcvd = 33772245185
em4: Good Packets Xmtd = 20662758161
-----------------------
em4: Dropped PKTS = 0
em4: Excessive collisions = 0
em4: Symbol errors = 0
em4: Sequence errors = 0
em4: Defer count = 3938
em4: Missed Packets = 17728457
em4: Receive No Buffers = 21687421
em4: Receive Length Errors = 0
em4: Receive errors = 0
em4: Crc errors = 0
em4: Alignment errors = 0
em4: Carrier extension errors = 0
em4: RX overruns = 1456730
em4: watchdog timeouts = 0
em4: XON Rcvd = 31813
em4: XON Xmtd = 2304166
em4: XOFF Rcvd = 935928
em4: XOFF Xmtd = 20031588
em4: Good Packets Rcvd = 33772265127
em4: Good Packets Xmtd = 20662759039

So If I well understand this, the card indicate that there are Missed Packets
because the nic have sometime not enough buffer space to store them which
seems stange with 8000 int/s and an 40K buffer (40K for Rx, 24K for Tx as
seen in if_em.c)



One of my interrogation is how to know that the system is heavy loaded.
systat -s 2 vmstat, give me these informations:

Proc:r  d  s  w    Csw   Trp   Sys   Int   Sof  Flt
          14       149     2   509 20118    98   31
                                                   
   3.5%Int   0.5%Sys   0.0%Usr   0.0%Nic  96.0%Idle
|    |    |    |    |    |    |    |    |    |    |

which make me think that the system is really not very loaded but I may miss
a point....


Manuel 

--
______________________________________________________________________
Manuel Guesdon - OXYMIUM

Reply via email to