From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Nir Tzachar <nir.tzachar@gmail.com>
Cc: Linux Networking Development Mailing List
<netdev@vger.kernel.org>, Ziv Ayalon <ziv@final.co.il>
Subject: Re: Fwd: [RFC v3] net: Introduce recvmmsg socket syscall
Date: Tue, 15 Sep 2009 17:52:07 -0300 [thread overview]
Message-ID: <20090915205207.GI22743@ghostprotocols.net> (raw)
In-Reply-To: <9b2db90b0909151120l71498303w26cfd657c9f18092@mail.gmail.com>
Em Tue, Sep 15, 2009 at 09:20:13PM +0300, Nir Tzachar escreveu:
> >> Setup:
> >> linux 2.6.29.2 with the third version of the patch, running on an
> >> Intel Xeon X3220 2.4GHz quad core, with 4Gbyte of ram, running Ubuntu
> >> 9.04
> >
> > Which NIC? 10 Gbit/s?
>
> 1G. We do not care as much for throughput as we do about latency...
OK, but anyway the 10 Gbit/s cards I've briefly played with all
exhibited lower latencies than all 1 gbit/s ones, in fact I've heard
about people moving to 10 Gbit/s not for the bw, but for the lower
latencies :-)
>
> >> Results:
> >> On general, the recvmmsg beats the pants off the regular recvmsg by a
> >> whole millisecond (which might not sound much, but is _really_ a lot
> >> for us ;). The exact distribution fluctuates between half a milli and
> >> 2 millis, but the average is 1 milli.
> >
> > Do you have any testcase using publicly available software? Like qpidd,
> > etc? I'll eventually have to do that, for now I'm just using that
> > recvmmsg tool I posted, now with a recvmsg mode, then collecting 'perf
> > record' with and without callgraphs to post here. The client is just
> > pktgen spitting datagrams as if there is no tomorrow :-)
>
> No. This was on a live, production system.
Wow :-)
>
> > Showing that we get latency improvements is complementary to what I'm
> > doing, that is for now just showing the performance improvements and
> > showing what gives this improvement (perf counters runs).
>
> We are more latency oriented, and, naturally, concentrate on this
> aspect of the problem. Producing numbers here is much more easier....
> I can easily come up with a test application which just measures the
> latency of processing packets, by employing a sending loop between two
> hosts.
>
> > If you could come up with a testcase that you could share with us,
> > perhaps using one of these AMQP implementations, that would be great
> > too.
>
> Well, in our experience, AMQP and other solutions have latency issues.
> Moreover, the receiving end of our application is a regular multicast
> stream. I will implement the simple latency test I mentioned earlier,
> and post some results soon.
OK.
And here are some callgraphs for a very simple app (attached) that stops
after receiving 1 million datagrams, collected with the perf tools in
the kernel. No packets per sec numbers besides the fact that the
recvmmsg test run collected way less samples (finished quicker).
Client is pktgen sending 100 byte datagrams over a single tg3 1 Gbit/s
NIC, server is running over a bnx2 1 Gbit/s link as well, just a sink:
With recvmmsg, batch of 8 datagrams, no timeout:
http://oops.ghostprotocols.net:81/acme/perf.recvmmsg.step1.cg.data.txt.bz2
And with recvmsg:
http://oops.ghostprotocols.net:81/acme/perf.recvmsg.step1.cg.data.txt.bz2
Notice where we are spending time in the recvmmsg case... :-)
- Arnaldo
next prev parent reply other threads:[~2009-09-15 20:52 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <9b2db90b0908060014r6a1763e8t1b3ee9310e012c25@mail.gmail.com>
2009-08-06 7:15 ` Fwd: [RFC v3] net: Introduce recvmmsg socket syscall Nir Tzachar
2009-09-14 23:09 ` Arnaldo Carvalho de Melo
2009-09-15 8:37 ` Nir Tzachar
2009-09-15 14:11 ` Arnaldo Carvalho de Melo
2009-09-15 18:20 ` Nir Tzachar
2009-09-15 20:52 ` Arnaldo Carvalho de Melo [this message]
2009-09-16 4:53 ` Simon Horman
2009-09-16 11:52 ` Arnaldo Carvalho de Melo
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=20090915205207.GI22743@ghostprotocols.net \
--to=acme@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=nir.tzachar@gmail.com \
--cc=ziv@final.co.il \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).