小编use*_*814的帖子

一个简单的 Ansible playbook 针对大约 100 个主机的合理性能是多少?

我们开始研究 Ansible 来替换旧的 cfengine2 安装。我有一个简单的剧本:

  • 复制 sudoers 文件
  • 复制模板化的 resolv.conf(输入 group_vars 和 host_vars 数据)
  • 检查几个服务正在运行
  • 检查本地用户的存在

该剧本需要超过 4 分钟的挂钟时间才能在 97 台机器上运行(全部通过快速 1gig 或 10gig 网络连接,LAN 延迟低于 1 毫秒),并且在我使用 2 核 4G 内存 VM 时消耗了超过 50% 的 CPU运行它。

在单台机器上运行大约需要 11 秒,消耗了大约 4 秒的用户+系统 CPU 时间,对于所涉及的工作量来说,TBH 似乎仍然有点过分。

明显的位:

  • 我在 playbook-dir local ansible.cfg 中明确启用了流水线
  • 我启用了对 jsonfile 的事实缓存,相同的本地 ansible.cfg
  • 我将叉设置为 50,相同(我尝试过其他值)
  • 我确信 Ansible 使用的是 SSH 而不是 Paramiko,它使用的是持久控制套接字——我可以看到 SSH 进程正在启动并在运行期间持续存在。

这种性能水平是正常的还是我的设置有问题?如果是这样,我该如何确定什么?

编辑:截至 2017 年 8 月,我们仍然看到这个问题。Ansible 版本是 2.2.1,现在剧本的大小已经增加。最新数字:

  • 98台主机
  • ansible -m ping all 实际需要 4.6 …

ansible ansible-playbook

11
推荐指数
1
解决办法
1384
查看次数

标签 统计

ansible ×1

ansible-playbook ×1