[Spread-users] Spread Performance (Financial Market Data Distribution)

John Schultz jschultz at spreadconcepts.com
Mon Jul 9 15:49:24 EDT 2007

When you only use a single daemon, your throughput should be CPU limited. 
As you linearly increase the number of receivers you are roughly linearly 
increasing the amount of work Spread has to perform directing traffic to 
each of the receivers.  So, I am not suprised that you see the throughput 
drop in half when you quadruple the number of participants on a single 

One thing that confuses me is that it is not sustainable to have your 
publisher producing at a rate 10x of what your receiver is consuming.  I'm 
suprised that Spread did not simply disconnect your receiver for being too 
slow and consuming too much of its memory (buffer) resources.

If you intend to send as fast as possible then your processes will have to 
conduct flow control amongst themselves so that your producers don't 
overwhelm your consumers.  If you don't, then Spread will disconnect your 
receivers once they are consuming too much buffer memory.


John Schultz
Spread Concepts
Phn: 443 838 2200

On Mon, 9 Jul 2007, Thomas Lo wrote:

> We are evaluating Spread to be used in market data distribution for financial 
> trading application. We are currently testing the throughput of using spread 
> and our first test involves sending 100,000 56 bytes messages and the 
> throughput on publisher is 122,228 messages per second and the receiver is 
> 12,052 messages per second which is quite good (daemon, publisher, and 
> receiver are on the same machine as the first test). However, when we 
> increase the no. of receivers (from one to four) connecting to the same 
> daemon, the throughput for both publisher and receiver start to decrease 
> dramatically (half of what it can achieve before). Is there any configuration 
> I need to tune the daemon on dealing with multiple receivers?

More information about the Spread-users mailing list