On Jan 24, 2011, at 9:14 AM, Daniel Piddock wrote:

> Dear list,
> 
> I'm attempting to mirror a folder containing a few large files from an
> NFS location to the local drive. Subsequent runs take a lot longer than
> I'd have expected, after the first run.
> 
> Using the following block a puppet apply run is currently taking 30 seconds:
> file { '/usr/share/target':
>        source   => 'file:///home/archive/source/',
>        recurse  => true,
>        backup   => false,
>        checksum => mtime,
> }
> 
> There are 42 files taking up 870MB. I'd have thought stating the files
> in the source and target, comparing to each other (or a cache internal
> to puppet as it doesn't set the mtime on files) would be a lot faster
> than it is.
> 
> I was curious about what puppet was up to, so ran it in strace. It's
> reading every file every run, multiple times! Reads the target twice,
> then the source twice before reading the target again. Considering I
> wasn't expecting it to open any of the files at all this is total over kill.
> 
> Is this horribly bugged or have I got a magic incantation that's causing
> this behaviour? strace is rather verbose and I haven't exactly read all
> 80MB of the dump line by line.
> 
> Is there a neater way of just mirroring a folder based on modification
> time? I suppose the easiest route would be an exec of rsync, at least I
> have control over that.
> 
> I'm using Puppet 2.6.4.
> 
> Dan
> I especially like the way Ruby searches for and loads the md5 library
> every time it's used. What a performant language.

This sounds like a bug to me.  I do know that I never use recurse=true except 
when neccisary myself because it's too slow.  In your position, I would replace 
it with an rsync and file a bug.

Also, does it behave this badly when no changes are made or just when making 
changes?

-- 
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