ansible 可以处理的最大分叉数

Max of forks that ansible can handle

如何知道 ansible 真正可以处理的最大分叉数。 当我将 --forks 设置为 100 时,如果我有超过 100 个主机,它是否真的会并行启动 100 个任务,或者 ansible 不能超过最大值?这取决于实际情况?

关于基于 CPU 和内存的最大分叉数,有关每个硬件要求的最大分叉数的唯一文档可以在 Ansible Tower 文档中找到:

4 GB RAM is recommended per 100 forks... about 100MB per fork... The baseline value for [CPU capacity for forks] is 4 forks per core.

现在,如果您想要优化的不仅仅是一条宽泛的规则,这实际上会变得更加复杂。该文档提供了可用于根据硬件规格确定最大分叉数的公式和算法。这来自 capacity determination documentation.

请注意,在这些公式中,您应该忽略作为 Ansible Tower 开销的一部分包含的因素。另请注意,确实在一个地方,文档声称每个分叉 100MB,而其他地方声称每 100 个分叉 4GB,这在数学上是不一致的。