Установки и splaylimit
работают вместе с настройкой runinterval
, чтобы своевременно распространять запросы каталога агентов. Они полезны прежде всего в ситуациях, когда сразу запускаются агенты нескольких агентов, например, когда группа виртуальных машин запускается вместе под управлением одного и того же хоста.
Обычно агент, работающий в режиме демона, запускает запуск каталога при первом запуске и снова в интервале runinterval
. Если опция splay
установлена true
, вместо этого она генерирует (псевдо) случайную задержку, не превышающую splaylimit
, и задерживает начало каждого каталога, выполняемого на этот промежуток времени, относительно того, когда он был бы запущен, если раскрутка отключена.
Таким образом, если у вас есть проблемы громового стада, возникающие из многих агентов времени начались примерно в то же время, то вы могли бы попытаться решить ее, установив
splay = true
в конфигурации ваших агентов. Если вы не сконфигурируете конкретный splaylimit
, то по умолчанию он будет равен runinterval
, в результате чего запущены каталоги всех агентов, запущенных в то же время, которые будут распространяться более или менее равномерно на протяжении всего интервала и, следовательно, в течение всего времени в будущем.
С другой стороны, если запуск вашего агента не так или иначе организован, чтобы заставить их сгруппироваться, то раскрутка на самом деле ничего не делает для вас. То есть, если стартапы агентов в любом случае являются примерно случайными, то это не поможет вам сменить циклы запросов каталога.
Я думаю расставленными также может помочь при запуске агента в режиме --onetime
через внешний планировщик (например, cron
). Это будет хорошим вариантом использования для настройки splaylimit
, поскольку в этом случае сконфигурированный runinterval
не имеет никакого отношения к тому, когда и как часто выполняется агент.
Спасибо, Джон, это мое понимание именно так, поэтому я рад, что кто-то подтвердит это. У нас нет нашего набора runinterval, поэтому он имеет значение по умолчанию 30 минут. Где бы вы установили параметр splay = true? У меня есть это в моей puppet.conf в разделе агента. Но агент работает, похоже, не пошатнулся, чтобы предотвратить проблему громоподобного стада. Нужно ли быть в кукольном мастере puppet.conf? Если да, то куда? Под мастер-секцией? – LLB3000
@CoolHandLuke, параметр 'splay' должен быть установлен в разделе' [agent] 'агента' puppet.conf'. Убедитесь, что вы работаете с правильным «puppet.conf», поскольку каталог, в котором он ищет Puppet, зависит от идентификатора пользователя и параметров командной строки. Перезапустите агенты после внесения изменений. Кроме того, убедитесь, что это действительно проблема громоподобного стада, а не проблема с общей емкостью сервера. –