我正在运行 Puppet,它运行正常,但同步需要大约 15 分钟,没有任何变化,在我看来,这不应该超过一两分钟。以下是一些统计数据:
- ping 40毫秒
- 49 个文件,3 MB,最大为 90K
- master 是 Ubuntu 12.04 (precise),带有 puppet 2.7.11
- (升级至 Puppet 2.7.23 也无济于事)
- 代理是 Debian 7/64,带有 puppet 版本 2.7.23
- 服务器只为一个客户端提供服务
我尝试过使用和不使用 Apache tunnel/WEBrick/passenger,结果相同。
有哪些策略可以诊断这个问题并改善同步时间?
更新:就我而言,除了使用该--evaltrace
选项的选定答案之外,我还使用strace
并发现 TCP 连接超时,并且我的防火墙正在限制速率。(我不知道为什么 puppet 没有报告超时以及为什么它不重复使用连接。)
答案1
最直接的方法是运行agent
带有--evaltrace
标志的
puppet agent --test --evaltrace
这将让您清楚地了解哪些资源最昂贵。
对于大文件,你可能需要尝试不同的校验和备择方案。
答案2
查看 :https://tickets.puppetlabs.com/browse/PA-3380它描述了由 SELinux 和挂载数量混合导致的缓慢。
没有人注意到这一点,这很遗憾,因为大多数(企业)用户会注意到速度至少提高了 50%,而且对系统负载的影响要小得多