我在找人来解释在 Puppet 配置中 splay 和 splaylimit 的用法。

Puppet 站点本身的文档至少可以说是有限的。
我正在遭受对我的主人的雷鸣般的追捧,即许多代理同时为他们的目录敲打代理,直到主人摔倒,每个代理都报告超时错误。

我知道我需要在我的配置中使用 splay 和 splaylimit 选项来立即停止所有代理 checkin ,但我不确定如何实现它。
有人可以帮忙吗?

最佳答案

splaysplaylimit 设置与 runinterval 设置一起工作,以帮助及时分散代理的目录请求。它们主要在许多机器的代理可能同时启动的情况下很有用,例如当一堆 VM 在同一主机的控制下一起启动时。

通常,代理在守护程序模式下运行时,会在首次启动时启动目录运行,并以 runinterval 间隔再次启动。如果 splay 选项设置为 true ,则它会生成一个(伪)随机延迟,不超过 splaylimit ,并将每个目录运行的开始延迟该时间量,相对于如果禁用展开时它会开始的时间。

因此,如果您有由于大约同时启动许多代理而引起的雷鸣般的羊群问题,那么您可以尝试通过设置来解决它

splay = true

在您的代理配置中。如果您没有配置特定的 splaylimit ,则它默认为您的 runinterval ,从而导致同时启动的所有代理的目录运行在整个时间间隔内或多或少均匀分布,因此在整个时间段内进行。

另一方面,如果你的代理的启动没有以某种方式精心策划以致他们聚集在一起,那么张开并没有真正为你做任何事情。也就是说,如果代理启动几乎是随机的,那么它不会帮助您改变他们的目录请求周期。

我认为当您通过外部调度程序(例如 --onetime )以 cron 模式运行代理时, splay 也可以提供帮助。这将为 splaylimit 设置提供一个很好的用例,因为在这种情况下,配置的 runinterval 与代理运行的时间或频率无关。

关于Puppet splay & splaylimit 解释?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32905796/

10-10 21:54