The second time it runs (with pluginsync enabled), it only pauses at the "Info: Retrieving plugin" notice for a few seconds. So, it sounds like the md5sum is not the bottleneck.
The specific setup that I'm using is a pretty beefy Xeon workstation with 24 GB of RAM acting as the puppetmaster for itself and all of the local vagrant VMs. It is running webrick, which I hadn't thought would be a problem, since it's only serving to itself and 1-6 VMs. During "vagrant up", I make sure to do only one machine at at time, so that I can watch them go by. So, it is only really doing any heavy lifting for one VM at a time. We do use passenger on our production system, so I'll be happy to try passenger on my workstation. I'll let you know if I see any improvement. On Monday, January 7, 2013 2:01:00 PM UTC-5, Ken Barber wrote: > > 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 > <ki...@steffensenfamily.com <javascript:>> 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...@googlegroups.com<javascript:>. > > > To unsubscribe from this group, send email to > > puppet-users...@googlegroups.com <javascript:>. > > 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/-/Fw2yD-CqBPsJ. 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.