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
8
9
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.
Cheers,
Laurent
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev