当Puppet代理上的'RunInterval'设置为0(连续运行)时,是否有任何性能开销?

时间:2015-02-01 05:52:01

标签: puppet

默认情况下,Puppet代理会在每30分钟后轮询Puppet master上的任何配置更改。因此,在适用代理上应用配置更改时,总是存在延迟(当主服务器上有任何配置更改时)<= 30分钟。

我希望将更改近乎实时地应用于代理(大约在不到一分钟内)。为此,我想在代理上将'RunInterval'设置为0,以便近乎实时地应用更改。

我想了解当'RunInterval'设置为0(连续运行)时是否存在任何性能开销。当代理设置为连续运行时,代理如何运行?它是否使用某种长轮询?建议/建议覆盖默认值并将“RunInterval”设置为0(连续运行)?

2 个答案:

答案 0 :(得分:1)

是的,有很多开销。

主服务器有开销,每单位时间必须处理更多的请求 - 可能多达200倍的请求,具体取决于目录运行在代理程序上的时间。对于每个请求,它必须与代理同步插件,编译并返回目录,并且可能提供文件,其中没有一个是微不足道的。

代理人也有开销。对于每个目录运行,它必须至少遍历每个声明的资源并测试该资源是否处于指定的目标状态。即使不需要进行任何更改,这样做也是非常重要的。

由于客户对主人的额外负担大大增加,因此您的策略更有可能倒闭,但如果他们已经携带了客户,您的客户肯定会感受到它重负荷。

如果您希望能够偶尔触发特定服务器立即同步,请考虑查看mcollective。

如果您希望能够例行触发许多服务器立即同步,那么请考虑切换到无主模式,结合mcollective或其他类型的组远程控制软件

答案 1 :(得分:0)

木偶大师会将您的木偶清单整理成一个文件供您的客户使用。如果所有客户同时查询木偶大师,只要你有一个非常琐碎的木偶部署,有几百个/千个木偶管理的服务器,它就可能在负载下挣扎。

对您来说最重要的是一致性 - 给定足够时间的确定性,客户将收敛到所需的配置。