<div>Thanks a ton guys!!</div>
<div> </div>
<div>If possible could you tell me that how much max bidirectional throughput I can get on 1Gbps ethernet connection?Can I get more than 1 Gig by changing the drivers and kernel?</div>
<div>I know its a very relative question but i will be glad if u help me out!</div>
<div> </div>
<div>thanks<br><br></div>
<div class="gmail_quote">On Tue, Jul 7, 2009 at 6:00 PM, Rick Jones <span dir="ltr">&lt;<a href="mailto:rick.jones2@hp.com">rick.jones2@hp.com</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div class="im">Brandeburg, Jesse wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">netperf –t TCP_RR –C –c -- -r 64K –b5<br></blockquote><br></div>This will give a single-connection bidirectional test - IFF netperf have been ./configure&#39;d with --enable-burst<br>
<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">*From:* <a href="mailto:netperf-talk-bounces@netperf.org" target="_blank">netperf-talk-bounces@netperf.org</a> [mailto:<a href="mailto:netperf-talk-bounces@netperf.org" target="_blank">netperf-talk-bounces@netperf.org</a>] *On Behalf Of *Ankit Goyal 
<div>
<div></div>
<div class="h5"><br>*Sent:* Tuesday, July 07, 2009 7:40 AM<br>*To:* <a href="mailto:netperf-talk@netperf.org" target="_blank">netperf-talk@netperf.org</a><br>*Subject:* [netperf-talk] Problem with Bidirectional Test<br><br>
Hi,<br><br>I am trying to find out the bi-directional throughput through netperf-2.4.5.<br>But when i write this code:<br><br>for i in 1<br>do<br>./netperf -H mycomputer -t TCP_STREAM -B &quot;outbound&quot; ./netperf -H mycomputer -t TCP_MAERTS -B &quot;inbound&quot; <br>
done<br><br>so this command TCP_MAERTS does not work<br><br>It says *netperf:remote error 998*<br><br>this error is dispayed on my board.<br><br>How is the best way to check the bi-directional throughput? please let me know asap<br>
</div></div></blockquote><br>I am assuming the for loop above is missing the &quot;&amp;&quot; after each of the netperf commands because you didn&#39;t bring them over into the email.  Otherwise, the first problem is that those commands as shown in the email will operate in series (one after the other) rather than in parallel.<br>
<br>As for the 998 error, one first step would be to grep through the sources with something like:<br><br>raj@tardy:~/netperf2_trunk/src$ find . -exec grep 998 {} \;<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br>
     netperf_response.content.serv_errno=998;<br>** Copyright (c) 1998 Microsoft.<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br>
dnl Copyright (c) 1995, 1996, 1997, 1998<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br>dnl Copyright (c) 1995, 1996, 1997, 1998<br>
dnl Copyright (c) 1995, 1996, 1997, 1998<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br>
     netperf_response.content.serv_errno=998;<br># Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003<br>     netperf_response.content.serv_errno=998;<br><br>of course that finds lots of things besides the 998 error code, but if we refine the search to:<br>
<br>raj@tardy:~/netperf2_trunk/src$ find . -exec grep &quot;=998&quot; {} \;<br>     netperf_response.content.serv_errno=998;<br>     netperf_response.content.serv_errno=998;<br>     netperf_response.content.serv_errno=998;<br>
<br>and then ask for the filenames:<br><br>raj@tardy:~/netperf2_trunk/src$ find . -exec grep -l &quot;=998&quot; {} \;<br>./.svn/text-base/netserver.c.svn-base<br>./netserver.c<br>./netserver.c~<br><br>and then go into netserver.c (ok, I could have done that straight away, but I&#39;m trying to give a fishing lesson :) we find:<br>
<br>   default:<br>     fprintf(where,&quot;unknown test number %d\n&quot;,<br>             netperf_request.content.request_type);<br>     fflush(where);<br>     netperf_response.content.serv_errno=998;<br>     send_response();<br>
     break;<br><br><br>which suggests the netserver running on &quot;mycomputer&quot; is old enough it does not know about the TCP_MAERTS test.  While mismatched versions between netperf and netserver have often &quot;worked&quot; they have never been &quot;supported&quot; and so you must update the netserver on &quot;mycomputer&quot; to the same rev as netperf.  Ideally, in doing so you would be bringing both netperf and netserver to version 2.4.5.<br>
<br>Now, as for which is &quot;better&quot; - the single connection burst-mode TCP_RR bidirectional test or the parallel TCP_STREAM and TCP_MAERTS tests, that is another of a long series of &quot;it depends&quot; questions.<br>
<br>The single-connection test will more or less by definition &quot;balance&quot; send and receive - just by the way it is coded.  It will also only make use of the services of one core/thread in the processor(s) on the system (*).<br>
<br>The dual-connection test will not lock send and recv into balance.  There will be two competing threads of execution running and so the services of up to two cores/threads in the processor(s) will be employed (*).  There is also the issue of skew error since netperf2 has no explicit test shynchronization.  To workaround that you would probably need to further alter the command lines to be more like: 
<div class="im"><br><br>for i in 1<br>do<br></div>./netperf -i 30 -l 30 -H mycomputer -t TCP_STREAM -B &quot;outbound&quot; &amp;<br>./netperf -i 30 -l 30 -H mycomputer -t TCP_MAERTS -B &quot;inbound&quot; &amp;<br>done<br>
<br>The -i 30 optionwill force each netperf command to run the test 30 times.  The -l 30 option will have each of those thiry iterations run for 30 seconds.  This then helps make certain that the length of any startup and shutdown skew is minimized relative to the actual time measurements are happening.  The -i 30 option will also cause netperf to check confidence intervals.  If they are not met, netperf will emit a warning and you might consider increasing the value in the -l option.<br>
<br>happy benchmarking,<br><br>rick jones<br><br>(*) unless, perhaps one binds netperf/netserver to cores/threads other than those taking interrupts from the NIC(s). In that case, a single connection can make use of the services of up to two cores/threads and two connections up to three.  Even then there is some wriggle room if say link aggregation is in use of some other mechanism to cause interrupts from the NIC(s) to go to more than one core/thread in the system.<br>
</blockquote></div><br>