On Sat, Apr 10, 2010 at 1:42 PM, Michael DeHaan <mich...@puppetlabs.com>wrote:
> On Sat, Apr 10, 2010 at 11:32 AM, Brice Figureau > <brice-pup...@daysofwonder.com> wrote: > > On 04/04/10 22:55, Luke Kanies wrote: > >> On Apr 3, 2010, at 9:22 AM, Brice Figureau wrote: > >>> I'm proud to post here two patches forming the Puppet Streaming patch. > >>> It's rather different and more leightweight than my previous attempt at > >>> solving this issue. But it doesn't cover streaming the catalog, it only > >>> involves streaming file content, either server side or client side. > >>> > >>> [snipped myself] > >> > >> Very nice - I'm really excited you got this done. I'd love to see some > >> test results for memory and performance differences. > > > > I performed a couple of benchmarks. > > My test is to run a master and a puppetd on the same machine (with > > plenty of RAM). The puppetd requests a manifests that consists of > > sourcing a 100MiB file, while both process are sampled every 1s to > > capture VSZ and RES. > > > > The master is runnin > > > > This bench ran with ruby 1.8.7 on osx 10.5. > > > > VSZ and RES are in KiB. > > > > Here are the results: > > > > without the patch: > > time: 27.47s > > > > VSZmin VSZmax VSZdiff RESmin RESmax RESdiff > > master 632096 1052040 419944 31992 349676 317684 > > puppetd 612860 879732 266872 13012 227012 214000 > > > > > > with the patch: > > time: 28.80s > > > > VSZmin VSZmax VSZdiff RESmin RESmax RESdiff > > master 632096 642496 10400 31976 42432 10456 > > puppetd 612860 630060 17200 13020 28580 15560 > > > > Conclusion: > > The patch did great in terms of memory consumption increase (17MiB > > compared to 266MiB on the client, and 10Mib compared to 420MiB on the > > server). > > > > Unfortunately it also has an impact on catalog application time (an > > increase of 1.4s, 5%). > > > > I did a couple of research and found that the culprit was Webrick buffer > > handling while sending file. On ruby 1.8.7 it uses a buffer of 4 KiB. > > Increasing this buffer to 1MiB drastically reduced the catalog > > application time to less than 16s. > > > > This buffer is used only when streaming content in webrick. When sending > > whole content as a string, this one is directly sent to the OS which > > uses much larger buffers able to sustain the bandwitdh of localhost. > > > > So, I think we can keep the streaming patch, it adds more advantages > > than drawbacks :-) > > -- > > Brice Figureau > > My Blog: http://www.masterzen.fr/ > > I like the idea of trading 5% runtime performance for such a large > memory savings. > > This was done with puppettest, yes? I'm thinking of spending some > time adding things to it. If you're using something else or have > additional performance testing ideas, let me know. > puppettest is working on 0.25.x again? > > It's hard to gauge the "how many of X can we run against a > puppetmaster", but I'd love to have more data on relatively comparing > releases, OSes, and implementations. Both time and resources. > ++ What I really want to be able to do... is simply take the cached yaml data from a puppet server for facts etc, and 'replay' those client requests against the server with specified splay, concurrent clients, etc. I have some proof of concept stuff I've worked on to do this, but I think I'm faking out too much of the client for it to be a truly accurate indicator. Capacity planning with puppet is difficult. > > --Michael > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" group. > To post to this group, send email to puppet-...@googlegroups.com. > To unsubscribe from this group, send email to > puppet-dev+unsubscr...@googlegroups.com<puppet-dev%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/puppet-dev?hl=en. > > -- nigel -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to puppet-...@googlegroups.com. To unsubscribe from this group, send email to puppet-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.