3 ms·
So the point about ZeroMQ's performance is that it removes almost all the messaging overhead, leaving only the network stack and network protocol. The main cos
by PieterH 18y ago
So the point about ZeroMQ's performance is that it removes almost all the messaging overhead, leaving only the network stack and network protocol. The main cost in conventional messaging is what sits above the network stack, in the messaging products and in the applications.
ZeroMQ gets rid of almost all this cost, so lets applications approach full network speed, as zinxq said, 10Gb on a 10Gb network.
There is a very big difference between a test program at each end of a network, and an application framework like ZeroMQ, which includes routing and queuing of messages based on the AMQP semantics of exchange and queue. The real beauty of ZeroMQ is the way it lets developers build fast multithreaded applications without ever worrying about how to scale - everything works as asynchronous messages, between processes on one machine, or processes distributed across wide networks.
It is possible to get about 2M kernel traversals per second, in one direction, per core. So with a perfect scalable messaging product that does not bypass the kernel and TCP/IP stack, you can hope for up to 1M messages per second per core. Depending on the size of the message you can thus saturate any network.
Apart from ZeroMQ, no existing messaging actually manages this. The very best closed-source products in this space manage 1M messages per second, which is already a big number.
To get to the stated goals, ZeroMQ will need to bypass TCP, bypass parts of the kernel, and probably move parts of its routing into silicon.