Issue #17335 has been updated by Andrew Gaffney.
Now this appears to be down to find_or_load() in resource/type_collection.rb.
<pre>
2.6.12:
debug: find_hostclass('location::ve'): find_or_load() took 4.4e-05 seconds
2.7.19:
debug: find_hostclass('location::ve'): find_or_load() took 0.002303 seconds
</pre>
Both of these are subsequent calls to this function for this class, so the
class itself should have already been loaded. A quick calculation puts
find_or_load() in 2.7.19 at ~50x slower than 2.6.12.
----------------------------------------
Bug #17335: Handling of defined resources is significantly slower in 2.7.19
than 2.6.12
https://projects.puppetlabs.com/issues/17335#change-75719
Author: Andrew Gaffney
Status: Unreviewed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version: 2.7.19
Keywords:
Branch:
I've been doing some comparisons of catalog compile time between 2.6.12 and
2.7.19 in preparation for doing an upgrade. For most nodes, the catalog
compilation time goes down. For my nagios servers, it goes up...drastically.
I added some debugging code to time the
evaluate_{generators,collections,definitions} functions as that's where most of
the time seemed to be going.
2.6.12:
debug: evaluate_collections() took 0.003229 seconds
debug: evaluate_definitions() took 42.65947 seconds
debug: evaluate_collections() took 0.010716 seconds
debug: evaluate_definitions() took 115.365583 seconds
debug: evaluate_collections() took 22.686326 seconds
debug: evaluate_definitions() took 52.906777 seconds
debug: evaluate_collections() took 1.122837 seconds
debug: evaluate_definitions() took 7.981192 seconds
debug: evaluate_collections() took 1.181 seconds
debug: evaluate_definitions() took 0.062297 seconds
debug: evaluate_collections() took 1.375645 seconds
debug: evaluate_definitions() took 0.095662 seconds
debug: evaluate_generators() took 245.456254 seconds
2.7.19:
debug: evaluate_collections() took 0.003082 seconds
debug: evaluate_definitions() took 90.218711 seconds
debug: evaluate_collections() took 0.011682 seconds
debug: evaluate_definitions() took 233.494054 seconds
debug: evaluate_collections() took 35.162047 seconds
debug: evaluate_definitions() took 81.172985 seconds
debug: evaluate_collections() took 38.45576 seconds
debug: evaluate_definitions() took 12.677507 seconds
debug: evaluate_collections() took 36.425026 seconds
debug: evaluate_definitions() took 0.055544 seconds
debug: evaluate_collections() took 37.27485 seconds
debug: evaluate_definitions() took 0.093251 seconds
debug: evaluate_generators() took 565.050061 seconds
The manifests for this node are complex and can't easily be distilled into a
test case. There are a lot of defined resources (5095 in this case), but that
shouldn't directly factor into the increase in compilation time.
--
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.