如何在Chef-solo中修复启动延迟

时间:2015-03-24 01:30:44

标签: performance chef chef-solo

使用厨师独奏,直接调用它 - 尽可能高的记录设置,这是我在尾巴中看到的:

[2015-03-24T12:21:48+11:00] INFO: Forking chef instance to converge...
[2015-03-24T12:21:48+11:00] DEBUG: Fork successful. Waiting for new chef pid: 5571
[2015-03-24T12:21:48+11:00] DEBUG: Forked instance now converging
[2015-03-24T12:21:49+11:00] INFO: *** Chef 11.8.2 ***
[2015-03-24T12:21:49+11:00] INFO: Chef-client pid: 5571
[2015-03-24T12:25:41+11:00] DEBUG: Building node object for localhost.localdomain
...

然后它继续并继续完美地工作。请注意,在最后两行之间,有一个延迟在 3到5分钟之间变化!没有解释它在做什么,netstat或top上没有明显的东西 - 我对如何解决这个问题感到茫然。

我认为这可能是代理问题,但在/etc/chef/client.rb中设置正确的代理没有改变。我是如何摆脱这种延迟的?

1 个答案:

答案 0 :(得分:3)

Chef开始时所做的第一件事 - 无论是chef-solo还是chef-client,都是使用ohai对系统进行概要分析。

chef-solochef-client之间的主要区别在于,调试日志级别将显示带有chef-client的ohai输出,但不会显示chef-solo

根据系统的配置,这可能需要很长时间才能完成,因为它会运行大量的插件。特别是,如果您的Linux系统连接到Active Directory,则可能需要一段时间才能通过AD检索用户/组记录,这就是Ohai支持disabling plugins的原因。此外,如果您在Windows系统上运行Chef和Ohai,则可能需要很长时间。

要禁用插件,您需要编辑相应应用程序的配置文件。

  • chef-solo默认使用/etc/chef/solo.rb
  • chef-client默认使用/etc/chef/client.rb

将以下行添加到相应的配置中:

Ohai::Config[:disabled_plugins] = [:Passwd]

禁用可能使用Active Directory的用户/组查找。

另外,我从输出中看到你正在使用2013年12月3日发布的Chef 11.8.2(一年多以前的答案)。从那时起,可能会引入性能改进。

但是,如果您没有特别感谢chef-solo,则可以尝试在本地模式下使用chef-client。有关如何切换a blog post by Julian Dunn on Chef's site的更多信息。如果您需要进一步的帮助,我强烈建议您使用irc.freenode.net上的Chef irc频道,或chef mailing list