Issue #18880 has been updated by Chris Spence.

Status changed from Unreviewed to Needs More Information

I have tried to recreate the catalog compile process, but need more of your 
code for any investigation to be meaningful.  Without your other haproxy, 
nagios and perhaps other defines/classes it's difficult to see where the time 
is.  My suspicion is that it's the process of creating dependencies between 
defines and other resources/classes that's taking the time.  One technique for 
this, and I don't know whether it will help in your case but it's my first 
suspicion about the root of the problem, is to declare those dependencies once 
in a class, so that each instance of a define doesn't have to repeat the work.

Whether this is the case is impossible for me to say without seeing more Puppet 
code.

----------------------------------------
Bug #18880: compile with large number of defines is becoming very slow, ruby 
1.9.3 is affected even more
https://projects.puppetlabs.com/issues/18880#change-98248

* Author: konrad rzentarzewski
* Status: Needs More Information
* Priority: Normal
* Assignee: 
* Category: compiler
* Target version: 
* Affected Puppet version: 
* Keywords: 
* Branch: 
----------------------------------------
today i've made some synthetic checks with our lb setup, which consists of 121 
defines, each of them wraps around 4-7 another defines (nagios, haproxy, 
stunnel configs, firewall).

results are catastrophic.

even more, we started to use ruby 1.9.3, as 1.8.7 is becoming obsolete and it's 
adding a more lag.

i've reduced define numbers and observed that compile time reduces 
significantly each time.
additionally i've inlined code from each define that we source from our lb 
define, and it also speeds up compile a lot.

i've compiled with:

<pre>
time /usr/local/rvm/rubies/ruby-1.9.3-p327/bin/ruby /usr/bin/puppet master 
--compile lb2.acme.corp
</pre>

and

<pre>
time /usr/bin/ruby /usr/bin/puppet master --compile lb2.acme.corp
</pre>

actual times are here:

  <https://github.com/asquelt/puppet-defines-wtf/blob/master/BENCHMARK>

manifest is here:

  
<https://github.com/asquelt/puppet-defines-wtf/blob/master/manifests/projects/dc1-lb.pp>

catalogs are also in repo:

  <https://github.com/asquelt/puppet-defines-wtf>

you can see that i've decorated everything with double colon to make sure this 
is not related to #17335

case is described in puppet-users but wasn't commented:

  <https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/4V01Kw5cReA>

we use puppetdb, but disabling it won't help (it strips 3-20 seconds depending 
on number of resources).

cpu on test machine is 2x Intel(R) Xeon(R) CPU E5335 @ 2.00GHz 4 cores, testing 
with single process.



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-bugs+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-bugs@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to