所以我有一个工人码头图像.我想启动一个500-50000个节点的网络来模拟私有区块链(如不同规模的以太网)会发生什么.对于这样的工作,开源工具/库的推荐是什么:
a)确保即使在低端(例如一个40核心节点)所有工人将及时向前移动(不是实时)
b)允许(a)在分布式设置中(比如单个局域网上的10个低端节点)
换句话说,我不寻求实时网络仿真,所以我可以等待10个小时来模拟1分钟,这对我来说已经足够了.我想到Kathara还有一个问题仍然存在 – 如何确保说10000个容器以循环方式给出相同数量的刻度?
那么如何模拟一个复杂的码头工人网络呢?
最佳答案
我假设你将在容器内运行.要确保每个容器以类似的cpu访问运行,您可以在每个副本上配置cpu保留和限制.这些数字可以计算到核心的小数部分,因此在8核心系统上,您可以为每个容器提供0.01个核心,以运行800个容器.请参阅compose documentation on how to set resource constraints.使用swarm模式,您可以将这些副本分布在多个节点上,共享网络.
也就是说,我认为在更多硬件上运行更短模拟的建议是好的.您会发现每个过程之间的上下文切换花费了大量时间,可能使您想要进行的任何测量无效.
您还将遇到docker和您选择的业务流程工具的可伸缩性问题.例如,您需要调整任何共享网络的子网大小,默认为大约253个可用IP的/ 24. docker引擎本身可能会花费大量的cpu时间来维护所有正在运行的容器的状态.