OK -- I just had a quick talk with Ted, and this makes sense
to me now:

  count *receives* per second.

I had it turned around and was worried about *sends* per second,
and then got confused by issues of fanout.

If you only count *receives* per second, and assume no discards,
it seems to me that you can indeed make a fair speed comparison 
between

   sender --> receiver

   sender --> intermediary --> receiver

and

   sender --> intermediary --> {receiver_1 ... receiver_n}

and even

   sender --> {arbitrary network of intermediaries} --> {receiver_1 ... 
receiver_n}

phew.


So I will do it that way.

This is from the application perspective, asking "how fast is your 
messaging system".  It doesn't care about how fancy the intermediation 
is, it only cares about results.  This seems like the right way to judge that.









----- Original Message -----


On 09/03/2014 11:35 AM, Michael Goulish wrote:
> 
> 
> 
> 
> ----- Original Message -----
>> On 09/03/2014 08:51 AM, Michael Goulish wrote:
>>> That point is where I seem to find the best performance on my
>>> system: 123,500 messages per second received.  ( i.e. 247,000
>>> transfers per second ) using about 180% CPU ( i.e. 90% each of
>>> 2 processors. )
>>
>> If you are sending direct between the sender and receiver process (i.e.
>> no intermediary process), then why are you doubling the number of
>> messages sent to get 'transfers per second'? One transfer is the sending
>> of a message from one process to another, which in this case is the same
>> as messages sent or received.
>>
> 
> Yes, this is interesting.
> 
> I need a way to make a fair comparison between something like this setup 
> (simple peer-to-peer) and the Dispatch Router numbers I was getting
> earlier.
> 
> 
> For the router, the analogous topology is    
> 
>     writer --> router --> reader
> 
> in which case I counted each message twice.
> 
> 
> 
> But it does not seem right to count a single message in
>    writer --> router --> reader 
> as "2 transfers", while counting a single message in
>    writer --> reader
> as only "1 transfer".
> 
> Because -- from the application point of view, those two topologies 
> are doing the same work.

You should probably be using "throughput" and not "transfers" in this case.

> 
> 
> 
> Also I think that I *need* to count    writer-->router-->reader   
> as "2", because in *this* case:
> 
> 
>      writer -->  router --> reader_1
>                       \
>                        \--> reader_2
> 
> 
> ...I need to count that as "3" .
> 
> 
> 
> ? Thoughts ?
> 
> 

Reply via email to