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



默认情况下,Puppet 代理每 30 分钟轮询一次,以查找 Puppet master 上的任何配置更改。因此,在适用的代理上应用配置更改时,始终存在 <= 30 分钟的滞后(当主服务器上有任何配置更改时)。

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

我想了解当"运行间隔"设置为 0(连续运行)时是否有任何相关的性能开销。当代理设置为连续运行时,代理如何工作?它是否使用某种长轮询?是否建议/建议覆盖默认值并将"运行间隔"设置为 0(连续运行)?

是的,有大量的开销。

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

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

你的

策略更有可能失败,因为它对你的主人的要求大大增加,而不是因为客户的额外负担,但如果你的客户已经背负了沉重的负担,他们肯定会感觉到。

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

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

傀儡

大师会将您的傀儡清单整理到一个文件中,供客户端使用。如果所有客户端同时查询 puppet master,则它可能会在负载下挣扎,前提是您有一个具有数百/数千台 puppet 托管服务器的不平凡的 puppet 部署。

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

最新更新