如何模拟500-50000个工作节点(docker)网络?

时间:2018-10-18 21:26:40

标签: docker networking virtual-machine emulation verification

所以我有一个工人码头工人图像。我想启动一个由500-50000个节点组成的网络,以模拟不同规模的以太坊等私有区块链所发生的情况。对于这样的工作,对开源工具/库的建议是什么?

a)可以确保即使在低端(例如40个核心节点)上,所有工作人员也将在时间上平等地前进(而不是实时)

b)允许(a)处于分布式环境(例如,单个lan上有10个低端节点)

换句话说,我不寻求实时网络仿真,因此我可以等待10个小时来仿真1分钟,这对我来说已经足够了。我想到了Kathara,但问题仍然存在-如何确保以循环方式为10000个容器提供相同数量的滴答声?

那么如何模拟一个复杂的docker worker网络?

1 个答案:

答案 0 :(得分:1)

我假设您将在容器内部运行每个容器。为确保每个容器都具有相似的CPU访问权限,您可以在每个副本上配置CPU保留和限制。这些数字被计算成一个核心的分数切片,因此在8核心系统上,您可以为每个容器提供0.01核心的数量,以向上运行800个容器。请参见compose documentation on how to set resource constraints。而且,通过群模式,您可以将这些副本分布在多个节点上,共享一个网络。

也就是说,我认为在更多硬件上运行较短仿真的建议是好的。您会发现很大一部分时间花费在每个过程之间的上下文切换上,可能会使您想要进行的任何测量无效。

您还将遇到docker和您选择的编排工具的可伸缩性问题。例如,您需要调整任何共享网络的子网大小,默认为/ 24,共享253个可用IP。 docker引擎本身可能将花费不小的CPU时间来维护所有正在运行的容器的状态。