[zeromq-dev] Router/Dealer configuration monopolizes CPU while idle

Kevin Sapper kevinsapper88 at gmail.com
Mon Nov 21 13:22:46 CET 2016


@Jens that might be a useful pattern that you could consider contributing
to the cookbook (https://github.com/zeromq/cookbook) or the zguide.

Am 21.11.2016 08:38 schrieb "Auer, Jens" <jens.auer at cgi.com>:

> In addition, it is usually better to read more than one message when poll
> signals activity on a socket. This reduces the number of poll calls, and
> these are quite expensive.
>
>
>
> Cheers,
>
> Jens
>
>
>
> *--*
>
> *Dr. Jens Auer *| CGI | Software Engineer
>
> CGI Deutschland Ltd. & Co. KG
> Rheinstraße 95 | 64295 Darmstadt | Germany
>
> T: +49 6151 36860 154
>
> jens.auer at cgi.com
>
> Unsere Pflichtangaben gemäß § 35a GmbHG / §§ 161, 125a HGB finden Sie
> unter de.cgi.com/pflichtangaben.
>
>
>
> CONFIDENTIALITY NOTICE: Proprietary/Confidential information belonging to
> CGI Group Inc. and its affiliates may be contained in this message. If you
> are not a recipient indicated or intended in this message (or responsible
> for delivery of this message to such person), or you think for any reason
> that this message may have been addressed to you in error, you may not use
> or copy or deliver this message to anyone else. In such case, you should
> destroy this message and are asked to notify the sender by reply e-mail.
>
>
>
> *From:* zeromq-dev [mailto:zeromq-dev-bounces at lists.zeromq.org] *On
> Behalf Of *Mazzaroth M.
> *Sent:* 20 November 2016 23:48
> *To:* ZeroMQ development list
> *Subject:* Re: [zeromq-dev] Router/Dealer configuration monopolizes CPU
> while idle
>
>
>
> yes I think know what you're driving at. Didn't know None/-1 was an option
> for poll(). Since I know the root cause I will tinker and see if I can have
> it -1 wait on the poller for the router. I guess what you're saying is when
> the Router receives something I can drop out of the nested While and poll()
> on the PULL socket.
>
>
>
> On Sun, Nov 20, 2016 at 1:38 PM, Michel Pelletier <
> pelletier.michel at gmail.com> wrote:
>
> I just did a brief scan of your code, but it looks like your controller is
> using poll(0) in two places in a loop.  poll(0) will return immediately and
> your code will busy loop around the 'while True' if idle.  I think a better
> approach would be to register the router socket with the poller and use
> poll(None) always processing the router socket messages first.
>
>
>
> -Michel
>
>
>
> On Sun, Nov 20, 2016 at 9:41 AM, Mazzaroth M. <taomailings at gmail.com>
> wrote:
>
> I have a Router/Dealer setup which is polling on a PULL socket to listen
> for jobs. It forks 10 Dealer/Worker processes. When I run it with the
> script below it will use about 20% cpu after about 5 min and then about a
> minute later use 100% cpu on a ubuntu 16.04 setup. This is all while idle.
> I'm not sure of the root cause.
>
>
> Controller
> https://gist.github.com/mazz/f50affc65bbf04a6140e257354b16898
>
> Worker
> https://gist.github.com/mazz/34ba3d98296bf5d013037b6ad48b6cb6
>
> import sys
> from pushpull.models import homedirs
>
> sys.path[0:0] = homedirs
> import actors.controller
>
> if __name__ == '__main__':
>     sys.exit(actors.controller.run())
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20161121/3cf0ddd7/attachment.htm>


More information about the zeromq-dev mailing list