Subject: Re: setsockopt()

From: Bill Fink <[email-masked]>
Date: Thu, 10 Jul 2008 20:50:45 -0400

On Thu, 10 Jul 2008, Rick Jones wrote:

> > In my own network benchmarking experience, I've generally gotten the
> > best performance results when the nuttcp application and the NIC
> > interrupts are on the same CPU, which I understood was because of
> > cache effects.
> 
> Interestingly enough I have a slightly different experience:
> 
> *) single-transaction, single-stream TCP_RR - best when app and NIC use 
> same core
> 
> *) bulk transfer - either TCP_STREAM or aggregate TCP_RR:
>    a) enough CPU on one core to reach max tput, best when same core
>    b) not enough, tput max when app and NIC on separate cores, 
> preferably cores sharing some cache
> 
> That is in the context of either maximizing throughput or minimizing 
> latency.  If the context is most efficient transfer, then in all cases 
> my experience thusfar agrees with yours.

Yes, I was talking about single stream bulk data transfers, where the
CPU was not a limiting factor (just barely when doing full 10-GigE
line rate transfers with 9000-byte jumbo frames).

On multiple stream tests there can be a benefit to spreading the load
across multiple cores.

						-Bill