From: Jesper Dangaard Brouer <hawk@comx.dk>
To: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>,
Robert Olsson <Robert.Olsson@data.slu.se>,
"Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@intel.com>,
"Ronciak, John" <john.ronciak@intel.com>,
jesse.brandeburg@intel.com,
Stephen Hemminger <shemminger@vyatta.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Achieved 10Gbit/s bidirectional routing
Date: Wed, 15 Jul 2009 18:50:31 +0200 [thread overview]
Message-ID: <1247676631.30876.29.camel@localhost.localdomain> (raw)
I'm giving a talk at LinuxCon, about 10Gbit/s routing on standard
hardware running Linux.
http://linuxcon.linuxfoundation.org/meetings/1585
https://events.linuxfoundation.org/lc09o17
I'm getting some really good 10Gbit/s bidirectional routing results
with Intels latest 82599 chip. (I got two pre-release engineering
samples directly from Intel, thanks Peter)
Using a Core i7-920, and tuning the memory according to the RAMs
X.M.P. settings DDR3-1600MHz, notice this also increases the QPI to
6.4GT/s. (Motherboard P6T6 WS revolution)
With big 1514 bytes packets, I can basically do 10Gbit/s wirespeed
bidirectional routing.
Notice bidirectional routing means that we actually has to move approx
40Gbit/s through memory and in-and-out of the interfaces.
Formatted quick view using 'ifstat -b'
eth31-in eth31-out eth32-in eth32-out
9.57 + 9.52 + 9.51 + 9.60 = 38.20 Gbit/s
9.60 + 9.55 + 9.52 + 9.62 = 38.29 Gbit/s
9.61 + 9.53 + 9.52 + 9.62 = 38.28 Gbit/s
9.61 + 9.53 + 9.54 + 9.62 = 38.30 Gbit/s
[Adding an extra NIC]
Another observation is that I'm hitting some kind of bottleneck on the
PCI-express switch. Adding an extra NIC in a PCIe slot connected to
the same PCIe switch, does not scale beyond 40Gbit/s collective
throughput.
But, I happened to have a special motherboard ASUS P6T6 WS revolution,
which has an additional PCIe switch chip NVIDIA's NF200.
Connecting two dual port 10GbE NICs via two different PCI-express
switch chips, makes things scale again! I have achieved a collective
throughput of 66.25 Gbit/s. This results is also influenced by my
pktgen machines cannot keep up, and I'm getting closer to the memory
bandwidth limits.
FYI: I found a really good reference explaining the PCI-express
architecture, written by Intel:
http://download.intel.com/design/intarch/papers/321071.pdf
I'm not sure how to explain the PCI-express chip bottleneck I'm
seeing, but my guess is that I'm limited by the number of outstanding
packets/DMA-transfers and the latency for the DMA operations.
Does any one have datasheets on the X58 and NVIDIA's NF200 PCI-express
chips, that can tell me the number of outstanding transfers they
support?
--
Med venlig hilsen / Best regards
Jesper Brouer
ComX Networks A/S
Linux Network developer
Cand. Scient Datalog / MSc.
Author of http://adsl-optimizer.dk
LinkedIn: http://www.linkedin.com/in/brouer
next reply other threads:[~2009-07-15 16:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-15 16:50 Jesper Dangaard Brouer [this message]
2009-07-16 3:22 ` Achieved 10Gbit/s bidirectional routing Bill Fink
2009-07-16 9:39 ` Jesper Dangaard Brouer
2009-07-16 15:38 ` Bill Fink
2009-07-17 20:35 ` Willy Tarreau
2009-07-17 23:38 ` Bill Fink
2009-07-18 7:14 ` Jesper Dangaard Brouer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1247676631.30876.29.camel@localhost.localdomain \
--to=hawk@comx.dk \
--cc=Robert.Olsson@data.slu.se \
--cc=davem@davemloft.net \
--cc=jesse.brandeburg@intel.com \
--cc=john.ronciak@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peter.p.waskiewicz.jr@intel.com \
--cc=shemminger@vyatta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.