How scalable is ZeroMQ?

How scalable is ZeroMQ? I am particularly interested in understanding its potential for working on a large number (from 10,000 to 15,000) of cores.

+8
scalability zeromq
source share
3 answers

We tried to make it as scalable as possible, but I personally tested only up to 16 boxes. Up to this limit, we have seen almost linear scaling.

+9
source share

You do not indicate whether your 10k or 15k cores are in the same box or not.

Suppose they are. Every two years, the number of cores per box can theoretically double. So, if today we have 16-core crates, it will be 16K cores in 20 years.

So, now, perhaps your question is: “will ZeroMQ help my application scale with so many cores to scale over the next 20+ years?” The answer is yes, but only if you use it correctly. This means that you are developing your application using inproc sockets and templates that properly share work and data flow. You will need to customize the architecture over time.

If you have a question: “Can I use many cores between multiple applications to advantage”, the answer lies more with your O / S than with ZeroMQ. Can your I / O level handle the load? Maybe yes.

And if your question is: “can I use ZeroMQ through a cloud of 10K-16K blocks”, then the answer is “yes, it has already been proven in practice”.

+10
source share

Note that while ZeroMQ is multi-threaded inside, it may not be practical to rely solely on scaling it to a large number of cores. However, since ZeroMQ uses the same API for inter-machine, interprocess, and cross-thread communication, it is easy to write an application using ZeroMQ that can seamlessly move to a script with one process on one tier or in a grid of many, many machines.

ZeroMQ has already established itself as the fastest structured messaging protocol, so if you intend to do tests to select a technology, ZeroMQ should definitely be one of them.

Two great reasons for using ZeroMQ are its easy-to-use cross-language API (see all the examples on the ZeroMQ Guide website) and its low overhead both in terms of bytes on the wire and in terms of delay. For example, ZeroMQ can use multicast UDP broadcasting is faster than any TCP protocol, but the application programmer does not need to learn the new API. All inclusive.

+5
source share

All Articles