@Jens that might be a useful pattern that you could consider contributing
to the cookbook (https://github.com/zeromq/cookbook) or the zguide.
Post by Auer, JensIn 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
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.
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 <
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
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
sys.exit(actors.controller.run())
_______________________________________________
zeromq-dev mailing list
http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
http://lists.zeromq.org/mailman/listinfo/zeromq-dev