Antoine Cotten
2014-Apr-17 09:23 UTC
[Puppet Users] Serious performance issues with Puppet 3.5.x when using Directory Environments
Dear Puppet Users community, I would like to report an issue I experience since the first release of Puppet 3.5, and possibly get some input from people who face the same problem (if any). I run a Puppet environment in which all 48 nodes run CentOS 6.5. I have been using config file-based environments so far without any trouble. When Puppet 3.5.0 was officially released I decided to give give it a try, along with the new Directory Environments feature. I disabled my old-style environment config while making sure my directory tree was correctly set, as described in the "Directory Environments" documentation page<http://docs.puppetlabs.com/puppet/latest/reference/environments.html> . The problem shows up immediately after I restart httpd: Passenger starts spawning more and more processes which all consume 25% of my machine CPU, reaching a load average of 10+ in less than a minute as soon as the first node requests a catalog. This makes the master unusable, it takes between 200 and 300sec to compile any catalog. What I have tried: 1. Switching back from Passenger to WEBrick: same performance issue 2. Disabling the puppet service on all nodes, and triggering *one*single manual Puppet run on a random node: same performance issue 3. Disabling my external node classifier (Foreman): same performance issue 4. Upgrading to Puppet 3.5.1: same performance issue 5. Switching back to config-based environments and re-enabling all nodes: no issue, my master behaves normally and the load-average remains under 0.25 constantly As you might have noticed, this is definitely not a sizing issue. My master has 2GB of RAM and 2 allocated vCPU, but the Puppet master rack process starts consuming all resources as soon as I re-enable Directory Environments. When I want to use Directory Environments, the only thing I do is commenting the [development] and [production] sections in my puppet.conf file, and adding this to the [main] section: environmentpath = $confdir/environments Let me describe my configuration: *-----------------puppet.conf--------------* [main] logdir = /var/log/puppet. rundir = /var/run/puppet ssldir = $vardir/ssl privatekeydir = $ssldir/private_keys { group = service } hostprivkey = $privatekeydir/$certname.pem { mode = 640 } autosign = $confdir/autosign.conf { mode = 664 } [master] autosign = $confdir/autosign.conf { mode = 664 } reports = foreman external_nodes = /etc/puppet/node.rb node_terminus = exec ca = true ssldir = /var/lib/puppet/ssl storeconfigs = true storeconfigs_backend = puppetdb [development] modulepath = /etc/puppet/environments/development/modules:/usr/share/puppet/modules manifest = /etc/puppet/environments/development/manifests/site.pp config_version [production] modulepath = /etc/puppet/environments/production/modules:/usr/share/puppet/modules manifest = /etc/puppet/environments/production/manifests/site.pp config_version *--------------------------------------------------* *--------------directory tree--------------*/etc/puppet/environments/ |-- development | |-- manifests | | `-- site.pp | `-- modules | |-- activemq | |-- apache | |-- apt | |-- concat | |-- datacat | |-- environment | |-- epel | |-- erlang | |-- firewall | |-- java | |-- java_ks | |-- mcollective | |-- postfix | |-- profiles | |-- rabbitmq | |-- repos | |-- stdlib | `-- tomcat `-- production |-- manifests | `-- site.pp `-- modules |-- activemq |-- apache |-- apt |-- concat |-- datacat |-- environment |-- epel |-- erlang |-- firewall |-- inifile |-- java |-- java_ks |-- mcollective |-- mysql |-- ntp |-- postfix |-- postgresql |-- profiles |-- puppetdb |-- rabbitmq |-- repos |-- stdlib |-- tomcat `-- vsftpd *--------------------------------------------------* Can anybody reproduce this it on any platform? Thank you in advance for your help! Toni -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/8036c0fa-57ee-401b-b9d7-03c43dda0fd2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.