[zeromq-dev] Is the ZMQ_IO_THREADS option implemented ?

Laurent Alebarde l.alebarde at free.fr
Tue Feb 18 13:26:06 CET 2014

Hi Devs,

Here are some tests on a 8 cores cpu.
500 client sockets sending 100 requests each with CURVE.
The duration measured takes into account only the exchange phase (not 
the preparation like sockets creation, bind, connect).
Clients sockets are polled and a new request is sent as soon as the 
previous one is back.

Same ctx for client (1 thread, 500 sockets), workers (6 threads, 200 
sockets each), proxy (1 thread)

I/O threads    Test duration (us)
1        58,220,570
2        62,541,507
3        61,411,154
4        58,612,643
5        58,752,070
6        53,754,941
7        56,311,634
10        58,363,975
20        53,909,971    52,686,884    53,027,835
40        56,675,445    54,128,019    54,111,137
100        52,951,096    53,056,814    53,100,007
1,000        53,791,720

Separate ctx for client, workers, and proxy (and so different number of 
I/O threads for each):

I/O threads    Test duration (us)
3/3/3        55,137,176    56,334,984    53,901,536

All these figures are roughly the sames. Other than this test, my 
computer is quite idle, nothing stressing the cpu is running. The cpu 
graph is flat before running the test. When I run the test, I can see 
only one cpu significantly used, but I am not sure such graph is relevant.

Furthermore, in the libzmq tests, there is no performance test that 
demonstrates the ZMQ_IO_THREADS option works. There is only 
tests/test_ctx_options.cpp that shows you can set the option, and 
tests/test_shutdown_stress.cpp that sets 7 I/O threads, but it does not 
demonstrate performances gains.

This makes me raise the question: has someone used this ZMQ_IO_THREADS 
option succesfully ?

All the test were run with the release build from Eclipse CDT. When run 
in a console directly, I can see a gain of 30%, but that's still far 
from what is expected.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140218/2268e6ef/attachment.htm>

More information about the zeromq-dev mailing list