Issue #12310 has been updated by Brice Figureau.

R.I. Pienaar wrote:
> I've spent some time with Brice today and we narrowed the 10 second loss in 
> my manifests to 
> https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/instrumentation/listeners/process_name.rb#L31-34
> 

To elaborate:

* when a puppet app starts, the instrumentation layer initialize
* it loads and registers all the instrumentation listeners, but those are never 
executed until activated
* except if the listener has a "subscribed" callback, this one is called
* the process_name one, has a "subscribed" callback
* this callback, creates a thread that loops forever and changes the current 
process name if told so and sleeps for 1 second

We concluded with RI that having this thread doing nothing is what causes the 
general slow-down of the whole process.
As RI mentioned, it's possible that it is dependent on his ruby version or even 
compilation options (as was the case in lenny shipped ruby back a couple of 
years ago).

I'll try to come with a patch that defers the creation of the thread to when 
the listener is really used. A work-around is to completely remove the 
process_name.rb file, thus this way it won't be loaded.



----------------------------------------
Bug #12310: Significant slow down in 2.7.10 apply
https://projects.puppetlabs.com/issues/12310

Author: R.I. Pienaar
Status: Code Insufficient
Priority: Normal
Assignee: Patrick Carlisle
Category: 
Target version: 2.7.x
Affected Puppet version: 2.7.10
Keywords: 
Branch: 
https://github.com/pcarlisle/puppet/tree/ticket/2.7.x/12310-puppet-apply-fact-loading


I've been exploring approaches for running puppet masterless and in the same 
time trying to massage my manifests to be compatible with 2.7.x scoping etc.

I noticed a huge increase in run times between 2.6.9 and 2.7.10 with the same 
manifests, using envpuppet and a git clone I've gathered this information:

<pre>
======== 2.6.9  
notice: Finished catalog run in 9.95 seconds
envpuppet puppet apply --pluginsync    14.45s user 4.99s system 92% cpu 21.098 
total
======== 2.7.9  
notice: Finished catalog run in 16.52 seconds
envpuppet puppet apply --pluginsync    21.92s user 6.90s system 93% cpu 30.814 
total
======== 2.7.10  
notice: Finished catalog run in 21.34 seconds
envpuppet puppet apply --pluginsync    23.58s user 9.42s system 73% cpu 44.662 
total
</pre>

2.7.0 to 2.7.9 performs the same.  While 2.7.0-9 is already a fair bit slower 
than 2.6 was 2.7.10 adds
another 14 seconds to the run using the same manifests on the same machine.

Comparing last_run_summary.yaml files I notice that the big change in run time 
info is service:

<pre>
    2.6.9: service: 2.920294
    2.7.9: service: 8.238562
    2.7.10: service: 12.400952
</pre>

But this does not on it's own account for the time increase there seems to be a 
hit somewhere like state.yaml handling or report handling or something that 
isn't reflected here.

Unsure how to gather more useful information to narrow this down



-- 
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to