- From: AJ Christensen <
>
- To:
- Subject: [chef] Re: Re: debugging slow knife?
- Date: Wed, 4 May 2011 13:44:20 +1200
Yo,
On 4 May 2011 13:39, Daniel DeLeo
<
>
wrote:
>
On Tuesday, May 3, 2011 at 9:54 AM, Michael Schueler wrote:
>
>
Hi Chefs,
>
>
I'm using the opscode platform. Before 0.10 the knife command was
>
unbearably slow. It's definately at least twice as fast, but it's still
>
kind of sluggish. Even issuing the help command to knife takes 2 seconds.
>
>
Some simple stuff:
>
>
Off my MacBook Pro..
>
% time knife node show e02
>
<snip>
>
knife node show e02 3.17s user 0.23s system 74% cpu 4.544 total
>
>
% time knife help
>
<snip>
>
knife help 2.12s user 0.17s system 99% cpu 2.296 total
>
>
% ruby -v
>
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]
>
>
>
My results are similar from an ec2 c1.xlarge...
>
>
# time knife ec2 --help
>
<snip>
>
real 0m1.843s
>
user 0m1.300s
>
sys 0m0.550s
>
>
# ruby -v
>
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
>
>
>
Is this expected? It might not seem like much but it's enough to really
>
slow me down and annoy me..
>
>
This is something I've optimized as much as possible. Given knife's current
>
architecture, it has to load all of the files to generate the help output,
>
so whether or not the files are cached makes a huge difference (as shown by
>
the numbers you've all posted).
>
There are some things you can look in to:
>
* Since knife has to load all commands including plugins when it runs, it's
>
important that any plugins you have installed make use of lazy loading.
>
* Running `gem clean` can improve your runtimes dramatically. It can also
>
break things that depend on those gems, so be careful.
>
After running gem clean, I'm seeing times around 0.6 seconds to run `knife
>
-h` and `knife help` when the disk cache is hot.
>
I'd certainly like to improve this further, especially for the case that the
>
disk cache is cold, but this would require fairly substantial architectural
>
changes to knife--and the gains from doing so could be fairly small compared
>
to the factors that are our of our control (e.g., factors affected by `gem
>
clean`).
After 'gem clean':
knife -h 0.30s user 0.08s system 98% cpu 0.391 total
knife help 0.49s user 0.16s system 99% cpu 0.663 total
Optimizing more than this seems like a waste of time! =D
>
>
--
>
Dan DeLeo
>
>
>
Thanks
>
Mike
>
>
Archive powered by MHonArc 2.6.16.