Puppet 木偶八字旗;八字限制解释了吗?

Puppet 木偶八字旗;八字限制解释了吗?,puppet,dsl,puppet-enterprise,Puppet,Dsl,Puppet Enterprise,我想找人解释一下splay&splaylimit在Puppet配置中的用法 关于Puppet站点本身的文档仅限于此。 我正遭受着对我的主人的猛烈攻击,即许多代理同时敲打代理以获取他们的目录,直到主人摔倒,每个代理都报告一个超时错误 我知道我需要使用配置中的splay&splaylimit选项来立即停止所有代理的签入,但我不确定如何实现它。 有人可以帮忙吗?splay和splaylimit设置与runinterval设置一起工作,帮助及时分发代理的目录请求。它们主要适用于多台机器的代理可能同时启动

我想找人解释一下splay&splaylimit在Puppet配置中的用法

关于Puppet站点本身的文档仅限于此。 我正遭受着对我的主人的猛烈攻击,即许多代理同时敲打代理以获取他们的目录,直到主人摔倒,每个代理都报告一个超时错误

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

splay和
splaylimit
设置与
runinterval
设置一起工作,帮助及时分发代理的目录请求。它们主要适用于多台机器的代理可能同时启动的情况,例如当一组虚拟机在同一主机的控制下一起启动时

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

因此,如果您在大约同一时间启动多个代理时遇到了一个雷鸣般的从众问题,那么您可以尝试通过设置

splay = true
在代理的配置中。如果未配置特定的
splaylimit
,则默认为
runinterval
,从而导致同时启动的所有代理的目录运行或多或少均匀地分布在整个时间间隔内,因此在以后的所有时间内

另一方面,如果你的代理的启动没有经过精心安排,从而导致他们聚集在一起,那么铺张浪费实际上对你没有任何帮助。也就是说,如果代理启动几乎是随机的,那么它不会帮助您改变它们的目录请求周期


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

谢谢John,这正是我的理解,因此我很高兴看到有人确认它。我们没有设置runinterval,因此默认为30分钟。在哪里设置splay=true选项?我把它放在代理部分下的puppet.conf中。但是,代理运行似乎没有交错分开,以防止雷鸣般的羊群问题。它需要在puppet master puppet.conf中吗?如果是,它会去哪里?在master部分?@CoolHandLuke下,应在代理的
puppet.conf
部分的
[agent]
中设置
splay
选项。确保您使用的是正确的
puppet.conf
,因为puppet查找它的目录随进程的用户id和命令行选项而变化。进行更改后重新启动代理。另外,请确保这确实是一个雷鸣般的群体问题,而不是更一般的服务器容量问题。