There are two primary bottlenecks for pluginsync:

* the md5 sum it needs to do on both ends to compare and see if a
resync is needed
* the transfer itself

If you run puppet a second time, with pluginsync enabled (but this
time nothing should be transferred) - how much time does it take
compared to the first run? I'm only curious as it might rule out
transfer versus the 'md5' operation. *shrug*. Alas though, I haven't
seen this specific problem myself - are you running the puppetmaster
using webrick or some sort of application server like 'passenger' or
'unicorn'? Its a long-shot, but webrick is single-threaded which has
been known to be a problem - alas it shouldn't be a problem during a
sequential pluginsync :-(.

On Mon, Jan 7, 2013 at 6:28 PM, Kirk Steffensen
<k...@steffensenfamily.com> wrote:
> Ken,
>
> Thanks.  I agree with your gut feeling, but after running the first round of
> tests you suggested, I don't think that's it.  Bandwidth is good and there
> are no netstat errors.  (Test results at the end of this email.)
>
> Actually, I just realized that the Puppet client on the Ubuntu box is
> running Puppet 2.7.11, which does not have pluginsync set to true by default
> (The CentOS boxes have Puppet 3.0.2, which has pluginsync set to true by
> default.)  I watched the Ubuntu box start up, and it didn't give me a "Info:
> Retrieving plugin" notice like the CentOS box does.  When I changed
> pluginsync to true on the Ubuntu box, it also took many minutes to sync the
> stdlib module.  (I didn't time it during this run, but it was about 10
> minutes.  I'd be happy to actually time it, if it would help troubleshoot.)
>
> While I didn't time the entire stdlib sync on the Ubuntu box, I did time
> several of the individual files.  It's taking about 10 seconds per file to
> copy it over to the client from the Puppet Master.  Since there are 90 files
> in stdlib, it is taking many minutes to sync the plugin, even though there
> are only 852KB of total data.  Each file is resulting in a Puppet notice
> like the following output:
>
> notice:
> /File[/var/lib/puppet/lib/puppet/parser/functions/str2bool.rb]/ensure:
> defined content as '{md5}ab045013031d01a0e9335af92580dde6'
>
> For my short-term needs, my solution is to change pluginsync to false on the
> CentOS boxes, since I'm only using the stdlib module to get the anchor
> definition, and that doesn't need to be on the client side.  But this will
> not be a long-term solution, as I will probably end up developing modules
> that need pluginsync to be true.
>
> Is anyone else who is using stdlib with pluginsync = true seeing this same
> 13-14 minute sync time during the first puppet run on a machine?
>
> Here are the results of the tests:
>
> iperf on CentOS: 298 Mbits/sec
> iperf on Ubuntu: 2.55 Gbits/sec
>
> $ netstat -in [on CentOS - no errors]
> Kernel Interface table
> Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR
> Flg
> eth0       1500 0   4813366      0      0 0       3076279      0      0
> 0 BMRU
> lo        16436 0   1140661      0      0 0       1140661      0      0
> 0 LRU
> vboxnet0   1500 0         0      0      0 0           866      0      0
> 0 BMRU
>
> The VBoxGuestAdditions are added in the basebox generation (using veewee,
> another great tool!) with the following in postinstall.sh.  This is
> resulting in the most current (and more importantly, the matching version to
> the host):
>
> ***********
> # Install vagrant keys
> mkdir /home/vagrant/.ssh
> chmod 700 /home/vagrant/.ssh
> cd /home/vagrant/.ssh
> wget --no-check-certificate
> 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O
> authorized_keys
> chown -R vagrant /home/vagrant/.ssh
>
> # Install the virtualbox guest additions
> VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
> cd /tmp
> wget
> http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso
> mount -o loop VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
> sh /mnt/VBoxLinuxAdditions.run
> umount /mnt
>
> rm VBoxGuestAdditions_$VBOX_VERSION.iso
> ***********
>
> Thanks,
> Kirk
>
>
> On Monday, January 7, 2013 12:20:34 PM UTC-5, Ken Barber wrote:
>>
>> My immediate gut feeling on this would be network not Puppet being the
>> issue actually, especially if another client is having success at
>> doing the sync.
>>
>> Its a virt so it could be hypervisor drivers or some other issue, its
>> an old version of the kernel as well - its more likely to happen -
>> although I haven't seen it myself lately :-). Run something like
>> 'iperf' on both ends to confirm your getting the right kind of network
>> performance, compare that performance to your Ubuntu target ... and
>> check out netstat -in for errors etc. etc.
>>
>> Check to make sure the right VirtualBox hypervisor drivers were
>> installed when building your Centos vagrant box btw
>> (VBoxGuestAdditions) ... I'm not sure of its origin but this can be an
>> important step for network performance.
>>
>>
>> On Mon, Jan 7, 2013 at 4:50 PM, Kirk Steffensen
>> <ki...@steffensenfamily.com> wrote:
>> > Hi,
>> >
>> > I have a fresh CentOS 5.8 Vagrant VM that I'm using to emulate a
>> > customer's
>> > server.  During the first Puppet run, it takes 13 minutes and 48 seconds
>> > to
>> > sync the Puppet Labs stdlib module.  On a similar Ubuntu 12.04.1 Vagrant
>> > VM,
>> > Puppet starts up, and almost instantly goes from plugin sync to facter
>> > load.
>> >
>> > Is this load time for stdlib on a RHEL variant normal?  It's only 580K
>> > of
>> > data to transfer.  It seems like it should be almost instantaneous, even
>> > on
>> > an older kernel like CentOS 5.8.
>> >
>> > I've posted the relevant part of the Puppet run's output to this gist:
>> > https://gist.github.com/4475110
>> >
>> > If anyone has any insight or any troubleshooting steps to try, I'd
>> > appreciate it.
>> >
>> > Thanks,
>> > Kirk
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Puppet Users" group.
>> > To view this discussion on the web visit
>> > https://groups.google.com/d/msg/puppet-users/-/jH71g1du7icJ.
>> > To post to this group, send email to puppet...@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > puppet-users...@googlegroups.com.
>> > For more options, visit this group at
>> > http://groups.google.com/group/puppet-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/puppet-users/-/gdGOknbXSW0J.
>
> 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.

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