[Spread-users] One scabby sheep will mar a whole frock
jonathan at cnds.jhu.edu
Mon Feb 4 17:38:00 EST 2008
The standard solution is to run spread daemosn at real-time priority so they
get the cpu time they need with as little delay as possible. You should be able
to find docs on any modern OS as to how to run a process with real-time priority.
On linux, it might be enough to run it as: nice -20 spread
Spread is designed as a cooperative system (amoung the daemons) so the daemons are trusted to be
efficient and only do what they need to do when sending messages. That's actually the way the code is
written, only work that must occur while the daemon holds a token is actually done then, other work is
deferred to after the daemon forwards the token on to the next one. However, because of this,
if a daemon is modified or tuned to send a lot of messages before giving up the token, then other
daemons will certainly be delayed.
If you have a daemon that needs to do more work (send more messages) then the other daemons
want it to, then your application may need some flow control to balance that out
or regulate the busy daemon.
On Fri, Feb 01, 2008 at 11:07:08AM -0500, John Schultz wrote:
> The only way I can think would be to have daemons monitor their load and
> if it gets too high, then to voluntarily exclude themselves from the
> membership for a significant period of time (e.g. - at least a minute).
> This would require "vetoing" the current membership in which it resides by
> purposely holding the token until the membership times out. Plus, the
> deamon would have to ignore Spread traffic from all other daemons for the
> exclusion period of time. In addition, you probably wouldn't want to
> rejoin the system until the load had dropped significantly below your
> exclusion loading threshold to further prevent thrashing.
> Other ways of dealing with this are to give Spread real time priority or
> nicing it to very high priority.
> John Schultz
> Spread Concepts
> Phn: 443 838 2200
> On Fri, 1 Feb 2008, Lobiv Igor wrote:
> >I've red in docs "A user guide to spread Version 10.11"
> >2.4 Tuning spread for performance or unique situations
> >2.4.2 Spread in high-load environments
> >End of the page 19, begin of the page 20
> >"Since all the daemons in the membership rely on all the others to quickly
> >process the token, send out new packets and then forward the token on,
> >if even ONE machine is heavily loaded the token will be significantly
> >and ALL Spread daemons will be slowed."
> >Is exist way to change this property of spread? May be automatically
> >exclude daemons which load is increased up to X%? X is configured in
> >config file.
> >Best regards,
> >Igor Lobiv
> >Telco Software Development Sector
> >SITRONICS Telecom Solutions, Czech Republic a.s.
> >Tel.: +420 211 030 655, Mobile: +420 724 936 638, Fax:
> >+420 296 524 103
> >BB Centrum - Beta, Vyskočilova 1461/2b, 140 00 Praha 4, Czech Republic
> >Spread-users mailing list
> >Spread-users at lists.spread.org
> Spread-users mailing list
> Spread-users at lists.spread.org
Jonathan R. Stanton jonathan at cs.jhu.edu
Dept. of Computer Science
Johns Hopkins University
More information about the Spread-users