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 [email protected].
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.

Reply via email to