我正在找人解释splay&的用法Puppet配置中的splaylimit。
关于Puppet网站本身的文档至少可以说是有限的。 我正在我的主人身上遭受雷鸣般的群体的攻击,即一些代理人同时敲击代理人的目录,直至主人摔倒,每个代理人都报告超时错误。
我知道我需要使用splay& amp;我的配置中的splaylimit选项可以立即停止所有代理检入,但我不确定如何实现它。 有人可以帮忙吗?
答案 0 :(得分:10)
splay
和splaylimit
设置与runinterval
设置一起使用,以帮助分散代理商'目录请求及时。它们主要用于许多机器的情况。代理可以立即启动,例如当一堆虚拟机在同一主机的控制下一起启动时。
通常,代理程序在守护程序模式下运行时,会在首次启动时启动目录运行,并再次以runinterval
间隔运行。如果splay
选项设置为true
,则它会生成(伪)随机延迟,不超过splaylimit
,并将每个目录的开始延迟一段时间,相对于如果禁用splaying它将会启动。
因此,如果您在大约同一时间启动许多代理商而产生雷鸣般的群体问题,那么您可以尝试通过设置来解决这个问题
splay = true
在您的代理商中'配置。如果您没有配置特定的splaylimit
,那么它默认为您的runinterval
,从而导致同时启动的所有代理的目录运行在整个时间间隔内或多或少地均匀分布,因而一直以来都是。
另一方面,如果您的代理商'启动不是以某种方式精心策划的,以致它们聚集起来,然后splaying并没有真正为你做任何事情。也就是说,如果代理商初创公司几乎是随机的,那么它并不能帮助你改变他们的目录请求周期。
当您通过外部调度程序(例如--onetime
)以cron
模式运行代理时,我认为 splay也会有所帮助。这将为splaylimit
设置提供一个很好的用例,因为在这种情况下,配置的runinterval
与代理运行的时间或频率无关。