Re: [zeromq-dev] zyre performances

2017-08-10 Thread Luca Boccassi
On Thu, 2017-08-10 at 22:48 +0200, Francesco wrote:
> Hi Luca,
> thanks for your reply.
> 
> 
> 2017-08-10 21:28 GMT+02:00 Luca Boccassi :
> > On Thu, 2017-08-10 at 19:44 +0200, Francesco wrote:
> > > thanks for details. I found out a problem that was blocking my
> > > testing: I have used a gcc 5.3 on some servers to build Zyre and
> > > apparently some build option I have there is causing my problem
> > > (nodes
> > > stuck after  "Took 3 ms to coordinate with all remote")... in
> > > another
> > > couple of servers I used the Centos7 native compiler (gcc4.7
> > > IIRC)
> > > and
> > > it worked.  I will dig into this issue tomorrow.
> > 
> > That's a bit suspicious :-)
> > 
> 
> Actually I found that the utility "zpinger" works (the 2 nodes "ping"
> each other)... I suspect it's due to the fact that when I used gcc5.3
> I used a version of libzmq built without libsodium...

That still shouldn't make any difference, peers should be able to
communicate regardless.

If you have a way to reproduce please share it or open an issue on
Github.

> > > When I got it running however I got somewhat low numbers, around
> > > 60k
> > > msg/sec (2 nodes). On the same machines I ran my own performance
> > > testing program with ZeroMQ and for 64B packets I reached around
> > > 1.5
> > > Mpps.
> > > 
> > > I didn't check the source code of the perf_loca/remote program
> > > but am
> > > I missing something?
> > 
> > I get the same numbers more or less. Note that zyre perf code is
> > less
> > optimised for throughput - it uses high level APIs that do a loc of
> > mallocs and copies, etc.
> > libzmq perf code uses more high performance zero-copy APIs, and
> > that
> > makes a lot of difference.
> 
> So do you think that when I have 2 Zyre nodes talking to each other
> (actually  unidirectional communication is a more fair comparison to
> my ZMQ tests) I can reach similar performance to plain ZMQ sockets if
> I spend some time optimizing the code?
> That's an important point for me to decide whether using vanilla ZMQ
> or Zyre instead...
> 
> Thanks,
> Francesco

In theory with some massaging it might be possible. If what you want is
a way to discover peers, you can form the groups and then get the list
of connected peers, and then their address. Then you could use the
zero-copy low-level libzmq APIs.

Kind regards,
Luca Boccassi

signature.asc
Description: This is a digitally signed message part
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Re: [zeromq-dev] zyre performances

2017-08-10 Thread Francesco
Hi Luca,
thanks for your reply.


2017-08-10 21:28 GMT+02:00 Luca Boccassi :
> On Thu, 2017-08-10 at 19:44 +0200, Francesco wrote:
>> thanks for details. I found out a problem that was blocking my
>> testing: I have used a gcc 5.3 on some servers to build Zyre and
>> apparently some build option I have there is causing my problem
>> (nodes
>> stuck after  "Took 3 ms to coordinate with all remote")... in another
>> couple of servers I used the Centos7 native compiler (gcc4.7 IIRC)
>> and
>> it worked.  I will dig into this issue tomorrow.
>
> That's a bit suspicious :-)
>
Actually I found that the utility "zpinger" works (the 2 nodes "ping"
each other)... I suspect it's due to the fact that when I used gcc5.3
I used a version of libzmq built without libsodium...


>> When I got it running however I got somewhat low numbers, around 60k
>> msg/sec (2 nodes). On the same machines I ran my own performance
>> testing program with ZeroMQ and for 64B packets I reached around 1.5
>> Mpps.
>>
>> I didn't check the source code of the perf_loca/remote program but am
>> I missing something?
>
> I get the same numbers more or less. Note that zyre perf code is less
> optimised for throughput - it uses high level APIs that do a loc of
> mallocs and copies, etc.
> libzmq perf code uses more high performance zero-copy APIs, and that
> makes a lot of difference.

So do you think that when I have 2 Zyre nodes talking to each other
(actually  unidirectional communication is a more fair comparison to
my ZMQ tests) I can reach similar performance to plain ZMQ sockets if
I spend some time optimizing the code?
That's an important point for me to decide whether using vanilla ZMQ
or Zyre instead...

Thanks,
Francesco
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Re: [zeromq-dev] zyre performances

2017-08-10 Thread Luca Boccassi
On Thu, 2017-08-10 at 19:44 +0200, Francesco wrote:
> Hi Luca,
> 
> thanks for details. I found out a problem that was blocking my
> testing: I have used a gcc 5.3 on some servers to build Zyre and
> apparently some build option I have there is causing my problem
> (nodes
> stuck after  "Took 3 ms to coordinate with all remote")... in another
> couple of servers I used the Centos7 native compiler (gcc4.7 IIRC)
> and
> it worked.  I will dig into this issue tomorrow.

That's a bit suspicious :-)

> When I got it running however I got somewhat low numbers, around 60k
> msg/sec (2 nodes). On the same machines I ran my own performance
> testing program with ZeroMQ and for 64B packets I reached around 1.5
> Mpps.
> 
> I didn't check the source code of the perf_loca/remote program but am
> I missing something?

I get the same numbers more or less. Note that zyre perf code is less
optimised for throughput - it uses high level APIs that do a loc of
mallocs and copies, etc.
libzmq perf code uses more high performance zero-copy APIs, and that
makes a lot of difference.

> 2017-08-10 12:55 GMT+02:00 Luca Boccassi :
> > On Thu, 2017-08-10 at 10:43 +0200, Francesco wrote:
> > > Hi all,
> > > 
> > > I've been looking into Zyre as framework to build peer to peer
> > > messaging.
> > > I've found that there is a "perf_local" and "perf_remote"
> > > binaries
> > > inside it... I'm curious to know: has anybody measured
> > > performances
> > > and is willing to share his numbers?
> > > 
> > > Btw I tried running that utility: I opened 2 shells and I ran
> > >    ./perf_local 2
> > > 
> > > but all I get is just:
> > >    "Took 3 ms to coordinate with all remote"
> > > 
> > > and then nothing...
> > 
> > Hi,
> > 
> > In one terminal first do:
> > 
> > ./perf_remote 4
> > 
> > And then in another:
> > 
> > ./perf_local 4
> > 
> > The argument must match. By default it's 25 (note that it requires
> > an
> > higher ulimit -n than most defaults), and it sends 1000 messages
> > (pass
> > a second argument to perf_remote to override this)
> > 
> > --
> > Kind regards,
> > Luca Boccassi
> > ___
> > zeromq-dev mailing list
> > zeromq-dev@lists.zeromq.org
> > https://lists.zeromq.org/mailman/listinfo/zeromq-dev
> 
> ___
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev

-- 
Kind regards,
Luca Boccassi

signature.asc
Description: This is a digitally signed message part
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Re: [zeromq-dev] zyre performances

2017-08-10 Thread Francesco
Hi Luca,

thanks for details. I found out a problem that was blocking my
testing: I have used a gcc 5.3 on some servers to build Zyre and
apparently some build option I have there is causing my problem (nodes
stuck after  "Took 3 ms to coordinate with all remote")... in another
couple of servers I used the Centos7 native compiler (gcc4.7 IIRC) and
it worked.  I will dig into this issue tomorrow.

When I got it running however I got somewhat low numbers, around 60k
msg/sec (2 nodes). On the same machines I ran my own performance
testing program with ZeroMQ and for 64B packets I reached around 1.5
Mpps.

I didn't check the source code of the perf_loca/remote program but am
I missing something?


Thanks,
Francesco



2017-08-10 12:55 GMT+02:00 Luca Boccassi :
> On Thu, 2017-08-10 at 10:43 +0200, Francesco wrote:
>> Hi all,
>>
>> I've been looking into Zyre as framework to build peer to peer
>> messaging.
>> I've found that there is a "perf_local" and "perf_remote" binaries
>> inside it... I'm curious to know: has anybody measured performances
>> and is willing to share his numbers?
>>
>> Btw I tried running that utility: I opened 2 shells and I ran
>>./perf_local 2
>>
>> but all I get is just:
>>"Took 3 ms to coordinate with all remote"
>>
>> and then nothing...
>
> Hi,
>
> In one terminal first do:
>
> ./perf_remote 4
>
> And then in another:
>
> ./perf_local 4
>
> The argument must match. By default it's 25 (note that it requires an
> higher ulimit -n than most defaults), and it sends 1000 messages (pass
> a second argument to perf_remote to override this)
>
> --
> Kind regards,
> Luca Boccassi
> ___
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> https://lists.zeromq.org/mailman/listinfo/zeromq-dev
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Re: [zeromq-dev] zyre performances

2017-08-10 Thread Luca Boccassi
On Thu, 2017-08-10 at 10:43 +0200, Francesco wrote:
> Hi all,
> 
> I've been looking into Zyre as framework to build peer to peer
> messaging.
> I've found that there is a "perf_local" and "perf_remote" binaries
> inside it... I'm curious to know: has anybody measured performances
> and is willing to share his numbers?
> 
> Btw I tried running that utility: I opened 2 shells and I ran
>    ./perf_local 2
> 
> but all I get is just:
>    "Took 3 ms to coordinate with all remote"
> 
> and then nothing...

Hi,

In one terminal first do:

./perf_remote 4

And then in another:

./perf_local 4

The argument must match. By default it's 25 (note that it requires an
higher ulimit -n than most defaults), and it sends 1000 messages (pass
a second argument to perf_remote to override this)

-- 
Kind regards,
Luca Boccassi

signature.asc
Description: This is a digitally signed message part
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

[zeromq-dev] zyre performances

2017-08-10 Thread Francesco
Hi all,

I've been looking into Zyre as framework to build peer to peer messaging.
I've found that there is a "perf_local" and "perf_remote" binaries
inside it... I'm curious to know: has anybody measured performances
and is willing to share his numbers?

Btw I tried running that utility: I opened 2 shells and I ran
   ./perf_local 2

but all I get is just:
   "Took 3 ms to coordinate with all remote"

and then nothing...


Thanks,
Francesco
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev