Apologies for the double post but my Ruby version is 1.8.7. Thanks,
Trevor On Thu, May 10, 2012 at 6:12 PM, Trevor Vaughan <[email protected]> wrote: > Nick, > > I just tried this patch with 2.7.13 and I didn't notice a large > difference in timing overall but I also didn't notice any adverse > effects. > > And, yes, I'm more than happy to try out new patches for optimization. > > Thanks, > > Trevor > > On Thu, May 10, 2012 at 2:44 PM, Nick Lewis <[email protected]> wrote: >> On Thursday, May 10, 2012 at 10:30 AM, Ashley Penney wrote: >> >> On Thu, May 10, 2012 at 1:42 AM, Jeff Weiss <[email protected]> >> wrote: >> >> >> Fourth, Peter, Émile, and Trevor (or anyone else experiencing the problem), >> would you be willing to be pre-release testers of improvements? Our ops team >> is seeing the problem too, but that's only a single real-world data point. >> We need to make sure we don't self-optimize. We need your help to make >> sure the performance fixes address *your* problems not just ours. >> >> >> I just wanted to chime in to offer to test any performance patches because >> I'm definitely interested in helping get to the bottom of any performance >> drops. We also see the massive memory use during run issues other people >> have seen which has resulted in us stopping puppet runs on certain >> over-commited boxes as it can tip them over the edge. Anything that targets >> either of this areas is something I'll happily hack in by hand for testing >> purposes. (I have 4 puppetmasters currently so it's easy to target just a >> few and not the rest for comparisons). >> >> >> On that note: After spending a few hours hunting yesterday, we identified >> the cause of a significant performance regression in compilation when using >> modules with metadata. I've attached a patch for anyone who would like to >> test it out. We're seeing approximately 5-10x faster compilation. >> >> The basic gist of the issue is that every time Puppet looks up a class (via >> include/import/autoload), it constructs a list of possible modules the class >> could be in (based on its name). For each module, it will create a >> Puppet::Module instance, so that it can ask which manifests in that module >> may contain the class. Unfortunately, creating the Puppet::Module instance >> will cause the metadata.json file to be read and parsed. Given that this >> happens several times *per include*, it gets expensive quickly. >> >> Fortunately, as we already have a list of Puppet::Module objects for all the >> modules, the simple solution is to just use one of those. >> >> Once again, a patch is attached. Please test this and provide feedback. Note >> that this patch should not be applied to Puppet 2.6, or to 2.7.3 or earlier. >> Due to a bug in caching, it will cause significantly *worse* performance. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Developers" 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-dev?hl=en. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Developers" 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-dev?hl=en. > > > > -- > Trevor Vaughan > Vice President, Onyx Point, Inc > (410) 541-6699 > [email protected] > > -- This account not approved for unencrypted proprietary information -- -- Trevor Vaughan Vice President, Onyx Point, Inc (410) 541-6699 [email protected] -- This account not approved for unencrypted proprietary information -- -- You received this message because you are subscribed to the Google Groups "Puppet Developers" 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-dev?hl=en.
