Chef 10.12 slower?


#1

Anyone else notice chef 10.12 release being significantly slow just on
startup compared to 10.10?

[root@monitor01 ~]# time /opt/chef/bin/chef-client -h
Usage: /opt/chef/bin/chef-client (options)
-S, --server CHEFSERVERURL The chef server URL
-k, --client_key KEY_FILE Set the client key file location
-c, --config CONFIG The configuration file to use
-d, --daemonize Daemonize the process
-E, --environment ENVIRONMENT Set the Chef Environment on the node
-g, --group GROUP Group to set privilege to
-i, --interval SECONDS Run chef-client periodically, in
seconds
-j JSON_ATTRIBS, Load attributes from a JSON file or URL
–json-attributes
-l, --log_level LEVEL Set the log level (debug, info, warn,
error, fatal)
-L, --logfile LOGLOCATION Set the log file location, defaults to
STDOUT - recommended for daemonizing
-N, --node-name NODE_NAME The node name for this client
–once Cancel any interval or splay options,
run chef once and exit
-o RunlistItem,RunlistItem…, Replace current run list with
specified items
–override-runlist
-P, --pid PIDFILE Set the PID file location, defaults to
/tmp/chef-client.pid
-s, --splay SECONDS The splay time for running at
intervals, in seconds
-u, --user USER User to set privilege to
-K, --validation_key KEY_FILE Set the validation key file location,
used for registering new clients
-v, --version Show chef version
-h, --help Show this message

real 0m10.072s
user 0m9.919s
sys 0m0.175s

[root@monitor01 ~]# rpm -qa | grep chef
chef-10.12.0-1.el6.x86_64

versus

[root@dc02vg0324na ~]# time /opt/opscode/bin/chef-client -h
Usage: /opt/opscode/bin/chef-client (options)
-S, --server CHEFSERVERURL The chef server URL
-k, --client_key KEY_FILE Set the client key file location
-c, --config CONFIG The configuration file to use
-d, --daemonize Daemonize the process
-E, --environment ENVIRONMENT Set the Chef Environment on the node
-g, --group GROUP Group to set privilege to
-i, --interval SECONDS Run chef-client periodically, in
seconds
-j JSON_ATTRIBS, Load attributes from a JSON file or URL
–json-attributes
-l, --log_level LEVEL Set the log level (debug, info, warn,
error, fatal)
-L, --logfile LOGLOCATION Set the log file location, defaults to
STDOUT - recommended for daemonizing
-N, --node-name NODE_NAME The node name for this client
–once Cancel any interval or splay options,
run chef once and exit
-override-runlist RunlistItem,RunlistItem…
Replace current run list with
specified items
-P, --pid PIDFILE Set the PID file location, defaults to
/tmp/chef-client.pid
-s, --splay SECONDS The splay time for running at
intervals, in seconds
-u, --user USER User to set privilege to
-K, --validation_key KEY_FILE Set the validation key file location,
used for registering new clients
-v, --version Show chef version
-h, --help Show this message

real 0m1.342s
user 0m1.188s
sys 0m0.140s

[root@dc02vg0324na ~]# rpm -qa | grep chef
chef-full-0.10.10-1


John Alberts


#2

Who built the packages? Are they installed with Opscode’s Omnibus installer?

On Mon, Aug 6, 2012 at 4:15 PM, John Alberts john.m.alberts@gmail.com wrote:

Anyone else notice chef 10.12 release being significantly slow just on
startup compared to 10.10?

[root@monitor01 ~]# time /opt/chef/bin/chef-client -h
Usage: /opt/chef/bin/chef-client (options)
-S, --server CHEFSERVERURL The chef server URL
-k, --client_key KEY_FILE Set the client key file location
-c, --config CONFIG The configuration file to use
-d, --daemonize Daemonize the process
-E, --environment ENVIRONMENT Set the Chef Environment on the node
-g, --group GROUP Group to set privilege to
-i, --interval SECONDS Run chef-client periodically, in
seconds
-j JSON_ATTRIBS, Load attributes from a JSON file or URL
–json-attributes
-l, --log_level LEVEL Set the log level (debug, info, warn,
error, fatal)
-L, --logfile LOGLOCATION Set the log file location, defaults to
STDOUT - recommended for daemonizing
-N, --node-name NODE_NAME The node name for this client
–once Cancel any interval or splay options,
run chef once and exit
-o RunlistItem,RunlistItem…, Replace current run list with specified
items
–override-runlist
-P, --pid PIDFILE Set the PID file location, defaults to
/tmp/chef-client.pid
-s, --splay SECONDS The splay time for running at
intervals, in seconds
-u, --user USER User to set privilege to
-K, --validation_key KEY_FILE Set the validation key file location,
used for registering new clients
-v, --version Show chef version
-h, --help Show this message

real 0m10.072s
user 0m9.919s
sys 0m0.175s

[root@monitor01 ~]# rpm -qa | grep chef
chef-10.12.0-1.el6.x86_64

versus

[root@dc02vg0324na ~]# time /opt/opscode/bin/chef-client -h
Usage: /opt/opscode/bin/chef-client (options)
-S, --server CHEFSERVERURL The chef server URL
-k, --client_key KEY_FILE Set the client key file location
-c, --config CONFIG The configuration file to use
-d, --daemonize Daemonize the process
-E, --environment ENVIRONMENT Set the Chef Environment on the node
-g, --group GROUP Group to set privilege to
-i, --interval SECONDS Run chef-client periodically, in
seconds
-j JSON_ATTRIBS, Load attributes from a JSON file or URL
–json-attributes
-l, --log_level LEVEL Set the log level (debug, info, warn,
error, fatal)
-L, --logfile LOGLOCATION Set the log file location, defaults to
STDOUT - recommended for daemonizing
-N, --node-name NODE_NAME The node name for this client
–once Cancel any interval or splay options,
run chef once and exit
-override-runlist RunlistItem,RunlistItem…
Replace current run list with specified
items
-P, --pid PIDFILE Set the PID file location, defaults to
/tmp/chef-client.pid
-s, --splay SECONDS The splay time for running at
intervals, in seconds
-u, --user USER User to set privilege to
-K, --validation_key KEY_FILE Set the validation key file location,
used for registering new clients
-v, --version Show chef version
-h, --help Show this message

real 0m1.342s
user 0m1.188s
sys 0m0.140s

[root@dc02vg0324na ~]# rpm -qa | grep chef
chef-full-0.10.10-1


John Alberts


#3

On Mon, Aug 6, 2012 at 1:15 PM, John Alberts john.m.alberts@gmail.com wrote:

Anyone else notice chef 10.12 release being significantly slow just on
startup compared to 10.10?

Most of the 10.12.0 packages were built with the new ruby omnibus
project whereas 0.10.10 was mostly the clojure omnibus project, so
there could be significant differences there.

Bryan


#4

Yes, as of the last couple of revs I’ve noticed terrible startup times on
omnibus on ubuntu ec2 instances, typically around 45 seconds before seeing
the version banner. I tried an m1.large and got 22 seconds before the
banner. I took to running class by having folks daemonize it and send
SIGUSR1s to kick off a run. I haven’t had time to trace it yet, sorry.

-a

On Mon, Aug 6, 2012 at 1:23 PM, Bryan McLellan btm@loftninjas.org wrote:

On Mon, Aug 6, 2012 at 1:15 PM, John Alberts john.m.alberts@gmail.com
wrote:

Anyone else notice chef 10.12 release being significantly slow just on
startup compared to 10.10?

Most of the 10.12.0 packages were built with the new ruby omnibus
project whereas 0.10.10 was mostly the clojure omnibus project, so
there could be significant differences there.

Bryan


#5

Sorry about that. I forgot to mention these are omnibus installer
installations. Wow, what a difference then between the two projects, a
7.5x increase in just the initial startup time.

On Mon, Aug 6, 2012 at 3:23 PM, Bryan McLellan btm@loftninjas.org wrote:

On Mon, Aug 6, 2012 at 1:15 PM, John Alberts john.m.alberts@gmail.com
wrote:

Anyone else notice chef 10.12 release being significantly slow just on
startup compared to 10.10?

Most of the 10.12.0 packages were built with the new ruby omnibus
project whereas 0.10.10 was mostly the clojure omnibus project, so
there could be significant differences there.

Bryan


John Alberts


#6

Ruby 1.9.2 can, in some cases, have pathological Kernel#require performance.

Ruby 1.9.3 with the patch by Sokolov Yura (@funny-falcon) seems to perform
much better.

Cheers,
Jay

On Mon, Aug 6, 2012 at 4:29 PM, John Alberts john.m.alberts@gmail.comwrote:

Sorry about that. I forgot to mention these are omnibus installer
installations. Wow, what a difference then between the two projects, a
7.5x increase in just the initial startup time.

On Mon, Aug 6, 2012 at 3:23 PM, Bryan McLellan btm@loftninjas.org wrote:

On Mon, Aug 6, 2012 at 1:15 PM, John Alberts john.m.alberts@gmail.com
wrote:

Anyone else notice chef 10.12 release being significantly slow just on
startup compared to 10.10?

Most of the 10.12.0 packages were built with the new ruby omnibus
project whereas 0.10.10 was mostly the clojure omnibus project, so
there could be significant differences there.

Bryan


John Alberts