[zeromq-dev] inproc message delivery

Doron Somech somdoron at gmail.com
Thu Apr 6 12:25:46 CEST 2017

You can also use the new sockets type (SERVER, CLIENT, RADIO, DISH,
SCATTER, GATHER) which don't use eventfd or OS primitive for
synchronization. However, they do use mutex, which can drop the throughput
but increase latency.

On Thu, Apr 6, 2017 at 12:50 AM, Max Kozlovsky <max at portworx.com> wrote:

> Hi,
> What exactly is your test doing? What is your message size and how many
> messages you send at a time?
> For a test that send one small message at a time between two threads it is
> does make sense that IPC message passing would be roughly the same as
> inproc transport.
> Inproc transport will add a message to the peer queue, then write to an
> eventfd that other thread epoll()s. The other thread would wake up, read
> the eventfd to clear the event and process message from the queue.
> Compare this with IPC message passing. Sender would write a small message
> directly to the other process socket, that other thread polls. The receiver
> will read a small message from kernel and process the message.
> As you can see, the two are almost exactly equivalent.
> You should see some difference when messages are bigger because of memory
> copy avoidance, or when multiple messages are sent, when extra system calls
> are avoided.
> Max
> On Wed, Apr 5, 2017 at 2:33 PM, Marlborough, Rick <
> RMarlborough at aaccorp.com> wrote:
>> Designation: Non-Export Controlled Content
>> Folks;
>>     We are testing message delivery between 2 zmq sockets. We have done
>> testing over the network between 2 nodes, on a single node and within a
>> single process. For the single process case we use inproc transport. When
>> we examine the delivery times we find that single node ipc transport is
>> better than network. Surprisingly, inproc transport performance is
>> virtually indistinguishable from ipc transport. I would expect ipc to be
>> blazing fast in comparison. For the record we are using ZeroMQ 4.2.2 on red
>> hat 7 64 bit. What should I expect using ipc transport?
>> Thanx
>> Rick
>> 3.1.1001
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20170406/beffebd8/attachment.htm>

More information about the zeromq-dev mailing list