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

Duc*_*een 6 verification networking emulation virtual-machine docker

所以我有一个工人码头图像.我想启动一个500-50000个节点的网络来模拟私有区块链(如不同规模的以太网)会发生什么.对于这样的工作,开源工具/库的推荐是什么:

a)确保即使在低端(例如一个40核心节点)所有工人将及时向前移动(不是实时)

b)允许(a)在分布式设置中(比如单个局域网上的10个低端节点)

换句话说,我不寻求实时网络仿真,所以我可以等待10个小时来模拟1分钟,这对我来说已经足够了.我想到了Kathara但问题仍然存在 - 如何确保说10000个容器以循环方式给出相同数量的刻度?

那么如何模拟一个复杂的码头工人网络呢?

BMi*_*tch 1

我假设您将在容器内运行每个内容。为了确保每个容器以相似的 CPU 访问权限运行,您可以在每个副本上配置 CPU 预留和限制。这些数字被计算为核心的小数切片,因此在 8 核心系统上,您可以为每个容器提供 0.01 个核心,以运行最多 800 个容器。请参阅有关如何设置资源限制的 compose 文档。通过群模式,您可以将这些副本分布在多个节点上,共享网络。

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

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