3

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

Puppet 网站本身的文档至少可以说是有限的。我在我的主人身上遭受雷鸣般的折磨,即许多代理同时为他们的目录敲击代理,直到主人倒下,每个代理都报告超时错误。

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

4

1 回答 1

10

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

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

因此,如果你有一个雷鸣般的羊群问题,因为许多代理同时启动,那么你可以尝试通过设置来解决它

splay = true

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

另一方面,如果您的代理的启动没有以某种方式精心安排以使他们聚集在一起,那么展开实际上对您没有任何帮助。也就是说,如果代理启动几乎是随机的,那么它不会帮助您改变他们的目录请求周期。

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

于 2015-10-02T13:43:56.987 回答