[zeromq-dev] Default PUBSUB behavior

chrish at techspecs.com chrish at techspecs.com
Wed Jan 12 02:34:20 CET 2011

Published the same on xChat.

I am testing PUBSUB and am wondering how the system behaves as it is
scaled. I applied a simple test with PUB->FORWARDER->SUB with 1 subscriber
and all on tcp localhost. A 500MB file with 7,500,000 messages took about
103 seconds giving an aggregate tranmission rate of about 73,500 messages
per second. A second test involved adding 1 additional subscriber but this
one was across the internet also using tcp. The aggregate transmission
rate dropped to 27,000 messages per second.

On the 2nd test, both subscribers appeared to be receiving data at the
same rate and both completed the test at the same time.

Questions :

1. This behavior implies that aggregate transmission rate is governed by
the slowest subscriber; is that a correct assumption? If true, I assume
this means the subscriber pool shares a global queuing mechanism. Correct?
Anyway to avoid the problem of extremely slow subscribers from stopping
the entire subscription base?

2. On the second test, there appeared at times that the process was
stalled for several seconds at a time. It didn't appear that other
activities on my system were affected by sluggish internet. What might
account for these stalls? Again test2 involved 1 pub, 1 forwarder and 1
subscriber all on the localhost and 1 subscriber sitting across the

I am still relatively new to zeromq so my apologies if these questions
seem obvious.


More information about the zeromq-dev mailing list