为什么厨师 - 客户同步对本地烹饪书来说很慢

时间:2015-02-05 01:13:12

标签: performance chef chef-recipe chef-solo

背景

我正在运行chef-client --local-mode,其烹饪书路径设置为./berks-cookbooks这些烹饪书,在运行厨师之前已经由berkshelf下载了。 (厨师sdk 4.0.0,berkshelf 3.2.3)

在运行我的脚本之前,厨师必须运行“同步烹饪书”,此步骤需要2到3分钟。据我所知,厨师正在下载相关的烹饪书,并检查他们的哈希值。

我的问题

如果我正在使用berkshelf并且已经在本地保存了烹饪书,为什么厨师花这么长时间下载Cookbook?

任何人都知道加快速度的方法吗?

1 个答案:

答案 0 :(得分:5)

我也很想知道这一点,最后对厨师 - 客户流程进行了分析,看看它在做什么。对于在本地模式下运行时厨师客户可用的每本食谱,它会读取所有其他可用烹饪书中的文件(更糟糕的是,它似乎对每本食谱不止一次)。

这意味着以本地模式同步烹饪书的时间将随着可用食谱数量的平方而增长。

你可以做的最小化这个时间的一件事是在跑步前删除所有不必要的食谱 - 即。手动同步您的食谱并删除那些不会使用的食谱。

由于我没有检查代码,我不知道为什么会这样做,但真正的解决方法是将代码更改为不重复读取相同的文件。