I've also gone for cron, but I really randomize it by running
puppetd from a wrapper script:

#!/bin/bash

RANDOM=$$$(date +%s)
d=$[ ( $RANDOM % 900 ) + 1 ]

sleep $d
/opt/sysadmin/bin/puppetd -t

I know it's not absolutely 100% random, but it's random enough
for this.  The risk of course is that you could still get clumps
but I've found that four puppetmasters running with mongrel+apache
are enough to not get anywhere near overloaded with ~200 nodes.

I use the 'sleep' command rather than --splay because --splay
wasn't working for me this time last year.  Don't recall what the
problem was any more, but this works pretty well.

Matt

Ohad Levy wrote:
> I also use cron, but I found using the IP address last bit as a more
> effective way to "randomize" it.
> 
> more info here:
> http://reductivelabs.com/trac/puppet/wiki/Recipes/cron
> 
> Cheers,
> Ohad
> 
> On Fri, Jan 9, 2009 at 9:21 AM, Ryan Dooley <ryan.doo...@gmail.com> wrote:
> 
> >
> > Have you checked out the splay option?
> >
> > Alternatively, I've since moved on from splay to use a cron job to run
> > puppetd.  I have a meta package that pulls in puppet and drops in a root
> > cron job entry based on the mac address of the host's primary interface
> > during the post-install step of rpm.
> >
> > Cheers,
> > Ryan
> >
> > On 1/8/09 12:17 PM, Christopher wrote:
> > > Hello...
> > >
> > > I have an existing puppet setup that works very well except for one
> > > thing.  Occasionally the puppetmaster is busy and the clients tend to
> > > "bunch up".  Then on the next client run they tend to "bunch up" again
> > > causing the puppetmaster to be slow down due to the high load which
> > > causes more slow downs.  This example should show what is happending:
> > >
> > > shell>  grep ": Compiled catalog for " all.log | cut -d: -f 1-2 | uniq -c
> > >     1 Jan  8 10:59
> > >     8 Jan  8 11:00
> > >    14 Jan  8 11:01
> > >     2 Jan  8 11:02
> > >     1 Jan  8 11:08
> > >    15 Jan  8 11:10
> > >    12 Jan  8 11:11
> > >     1 Jan  8 11:20
> > >
> > > The above shows an idle time followed by a rush of puppet clients
> > > hitting the puppetmaster followed by another idle time.
> > >
> > > This is probably worse when clients run a logrotate script with a client
> > > restart from a cronjob.
> > >
> > > I would suggest something like the runinterval be $runinterval +
> > > $(random number of seconds between 1 and 120) || $(random number of
> > > seconds between 1 and $runinterval*0.1 )
> > >
> > > That should help spread out the load on the server.
> > >
> > >
> > >
> > >
> >
> >
> > >
> >
> 
> > 

-- 
* Matt McLeod | mail: m...@boggle.org | blog: http://abortrephrase.com/ *
     --- People can do the work, so machines have time to think ---

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to