Jack Vogel wrote:
The 1.3.3 driver is two years old, and your OS is older. I would respectfully suggest that you update to 8.0 where lots of effort was put to make 10G hardware perform up to its capabilities.

OK, done source-upgrading kernel+world to 8.0-RELEASE-p2 with its stock ixgbe driver. Things got much worse, with net traffic load of 2/3 from what it was before. Both interfaces' settings left at their default:

options=5bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO>

systat -ip shows around 120-130K input packet rate, and 1800-2000 "fragmentation failed" errors per refresh. Is this an MTU issue? It's at default 1500.
systat -if sometimes shows weird numbers:
            ix1  in    630.404 Mb/s        637.332 Mb/s          502.670 GB
                 out  6826.954 Mb/s       6826.954 Mb/s           40.144 MB

            ix0  in    638.440 Mb/s        643.392 Mb/s          574.943 GB
                 out  6861.143 Mb/s       6861.143 Mb/s            5.811 KB

see the 6861 mbps stuff? which should be practically 0. also ix1 630 mbps should be on output, not input. ix0/in and ix1/out differ in as much as 100-150 mbps sometimes.

Turning dummynet ("pipe tablearg", ~6000 table entries) improves things a bit: the data rate grows to what it should be and stays at that level a couple of minutes, but then it suddenly drops to 4/5 of that and stays there a couple of minutes.

There's a new option for dummynet in "man ipfw": burst
     burst size
             If the data to be sent exceeds the pipe's bandwidth limit (and
             the pipe was previously idle), up to size bytes of data are
             allowed to bypass the dummynet scheduler, and will be sent as
             fast as the physical link allows.  Any additional data will be
             transmitted at the rate specified by the pipe bandwidth.  The
burst size depends on how long the pipe has been idle; the effec-
             tive burst size is calculated as follows: MAX( size , bw *
             pipe_idle_time).

Is this worthwhile?

Things have gotten much worse.  Please help.

Similarly, I have done lots of work in two years to the ixgbe driver,
I would even suggest that once you have 8 installed you get the
driver from HEAD.



Regards,

Jack

On Thu, Mar 11, 2010 at 7:50 AM, rihad <ri...@mail.ru <mailto:ri...@mail.ru>> wrote:

Hi, our Intel 10 GigE cards are finally here, identified as <Intel(R)
PRO/10GbE PCI-Express Network Driver, Version - 1.3.3> with the driver ixgbe-1.3.3 off the CD-ROM. One card is used for input, the other for output, doing traffic limiting (dummynet) and accounting in between. At data rates of about 700-1000 mbps netstat -i shows many Input errors on ix0 at a rate of 10-20K per second :(

top -HS: CPU: 1.3% user, 0.0% nice, 25.2% system, 14.1% interrupt, 59.3% idle Mem: 1047M Active, 2058M Inact, 466M Wired, 126M Cache, 214M Buf, 239M Free Swap: 2048M Total, 2048M Free

PID USERNAME   PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
 32 root       -68    -     0K    16K CPU3   3 460:56 100.00% irq258:
 ix0 33 root       -68    -     0K    16K CPU7   7 143:14 100.00% ix0
 rxq 13 root       171 ki31     0K    16K RUN    5 574:39 93.65%
idle: cpu5 12 root       171 ki31     0K    16K RUN    6 507:08
88.33% idle: cpu6 14 root       171 ki31     0K    16K CPU4   4
424:04 80.37% idle: cpu4 18 root       171 ki31     0K    16K CPU0
0 395:34 75.00% idle: cpu0 16 root       171 ki31     0K    16K RUN 2
433:10 70.21% idle: cpu2 700 root       -68    -     0K    16K - 2
292:19 56.64% dummynet 17 root       171 ki31     0K    16K CPU1 1
399:02 50.39% idle: cpu1 37 root       -68    -     0K    16K CPU1 1
196:19 39.50% ix1 rxq 11 root 171 ki31 0K 16K RUN 7 510:39 14.79% idle: cpu7 36 root -68 - 0K 16K WAIT 5
36:36  8.64% irq260: ix1 19 root       -32    -     0K    16K CPU6 6
36:52  5.08% swi4: clock sio


Turning dummynet off (by short-circuiting the IPFW rule "allow ip from any to any" before the "pipe tablearg") doesn't eliminate the input errors. Turning ip.fastfowarding off (see below) doesn't help either (why would it), only this time "swi" is chewing up the CPU time instead of "irq". Are we hitting the CPU core limits here? It's a dual cpu quad-core Intel(R) Xeon(R) CPU E5410 @ 2.33GHz (Dell PowerEdge 2950). Shouldn't this $2.5K expensive card have decently-sized hardware buffers to prevent any overruns?

Some custom settings: kern.hz=4000 net.inet.ip.fastforwarding=1 kern.ipc.nmbclusters=111111 net.inet.ip.dummynet.io_fast=1 net.isr.direct=0 net.inet.ip.intr_queue_maxlen=5000 hw.intr_storm_threshold=8000 #as suggested by the ixgbe-1.3.3 docs

FreeBSD 7.1 kernel built with DEVICE_POLLING, even though it isn't used. Should I nonetheless recompile without it? I heard the mere existence of DEVICE_POLLING affects some cards' performance.

Thanks for any tips. _______________________________________________
 freebsd-net@freebsd.org <mailto: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 <mailto:freebsd-net-unsubscr...@freebsd.org>"



_______________________________________________
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