From: Rick Jones <rick.jones2@hp.com>
To: Ben Hutchings <bhutchings@solarflare.com>
Cc: mi wake <wakemi.wake@gmail.com>, netdev@vger.kernel.org
Subject: Re: rps testing questions
Date: Tue, 18 Jan 2011 10:23:44 -0800 [thread overview]
Message-ID: <4D35DAB0.9030201@hp.com> (raw)
In-Reply-To: <1295269713.3700.5.camel@localhost>
Ben Hutchings wrote:
> On Mon, 2011-01-17 at 17:43 +0800, mi wake wrote:
>
>>I do a rps(Receive Packet Steering) testing on centos 5.5 with kernel 2.6.37.
>>cpu: 8 core Intel.
>>ethernet adapter: bnx2x
>>
>>Problem statement:
>>enable rps with:
>>echo "ff" > /sys/class/net/eth2/queues/rx-0/rps_cpus.
>>
>>running 1 instances of netperf TCP_RR: netperf -t TCP_RR -H 192.168.0.1 -c -C
>>without rps: 9963.48(Trans Rate per sec)
>>with rps: 9387.59(Trans Rate per sec)
Presumably there was an increase in service demand corresponding with the drop
in transactions per second.
Also, an unsolicited benchmarking style tip or two. I find it helpful to either
do several discrete runs, or use the confidence intervals (global -i and -I
options) with the TCP_RR tests when I am looking to compare two settings. I
find a bit more "variability" in the _RR tests than the _STREAM tests.
http://www.netperf.org/svn/netperf2/trunk/doc/netperf.html#index-g_t_002dI_002c-Global-26
Pinning netperf/netserver is also something I tend to do, but combining that
with confidence intervals, RPS is kind of difficult - the successive data
connections made while running the iterations of the confidence intervals will
have different port numbers and so different hashing. That would cause RPS to
put the connections on different cores in turn, which would, in conjunction with
netperf/netserver being pinned to a core cause the relationship between where
netperf runs and where netserver runs to change. That will likely result in
cache to cache (processor cache) transfers which will definitely up the service
demand and drop the single-stream transactions per second.
In theory :) with RFS that should not be an issue since where netperf/netserver
are pinned controls where the inbound processing takes place.
We are in a maze of twisty heuristics... :)
>>I do ab and tbench testing also find there is less tps with enable
>>rps.but,there is more cpu using when with enable rps.when with enable
>>rps ,softirqs is blanced on cpus.
>>
>>is there something wrong with my test?
>
>
> In addition to what Eric said, check the interrupt moderation settings
> (ethtool -c/-C options). One-way latency for a single request/response
> test will be at least the interrupt moderation value.
>
> I haven't tested RPS by itself (Solarflare NICs have plenty of hardware
> queues) so I don't know whether it can improve latency. However, RFS
> certainly does when there are many flows.
Is there actually an expectation that either RPS or RFS would improve *latency*?
Multiple-stream throughput certainly, but with the additional work done to
spread things around, I wouldn't expect either to improve latency.
happy benchmarking,
rick jones
next prev parent reply other threads:[~2011-01-18 18:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-17 9:43 rps testing questions mi wake
2011-01-17 9:53 ` Eric Dumazet
2011-01-18 8:34 ` mi wake
2011-01-17 13:08 ` Ben Hutchings
2011-01-18 18:23 ` Rick Jones [this message]
2011-01-18 18:34 ` Ben Hutchings
2011-01-18 19:10 ` Rick Jones
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=4D35DAB0.9030201@hp.com \
--to=rick.jones2@hp.com \
--cc=bhutchings@solarflare.com \
--cc=netdev@vger.kernel.org \
--cc=wakemi.wake@gmail.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 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).