在linux上模拟分布式系统的最轻量级方法

在linux上模拟分布式系统的最轻量级方法,linux,docker,android-emulator,distributed-computing,distributed-system,Linux,Docker,Android Emulator,Distributed Computing,Distributed System,所以我要学习这个分布式系统课程,在这个课程中,项目是通过使用android和多个模拟器来模拟分布式系统来完成的。由于多种原因,这种方法非常糟糕: Android仿真器消耗的资源太多,导致我可怜的笔记本电脑大部分崩溃 模拟器之间的网络支持较差。需要在TCP上进行端口转发什么的 那么,如何在我的Linux机器上模拟消耗最少资源(主要是RAM和CPU时间)的分布式系统呢 Docker是所有这些问题的答案吗?可能会为每个容器创建多个具有单独IP的容器?这可能吗?您可以在一台Linux机器上运行多个doc

所以我要学习这个分布式系统课程,在这个课程中,项目是通过使用android和多个模拟器来模拟分布式系统来完成的。由于多种原因,这种方法非常糟糕:

  • Android仿真器消耗的资源太多,导致我可怜的笔记本电脑大部分崩溃
  • 模拟器之间的网络支持较差。需要在TCP上进行端口转发什么的
  • 那么,如何在我的Linux机器上模拟消耗最少资源(主要是RAM和CPU时间)的分布式系统呢


    Docker是所有这些问题的答案吗?可能会为每个容器创建多个具有单独IP的容器?这可能吗?

    您可以在一台Linux机器上运行多个docker容器。每个容器将获得自己的IP地址,并且还可以与同一主机上的其他容器进行通信。您想模拟多少个系统?

    您可以在一台Linux机器上运行多个docker容器。每个容器将获得自己的IP地址,并且还可以与同一主机上的其他容器进行通信。您希望模拟多少个系统?

    我的团队维护多个生产分布式系统;我们必须对其进行单元测试,以便捕获协议错误

    我们将时钟和网络的存根实现注入到类中。该网络模仿了许多分布式系统论文中使用的消息传递模型:随机选取一条消息并传递它。这很好地模拟了网络延迟和不一致性。我们还内置了其他功能:能够阻止/释放或删除主机之间的消息;和一个简单的tcp模型

    通过这个简单的添加,我们的单元测试现在被称为交互测试。我们可以非常快速地添加任意多个服务器,这些服务器都可以在笔记本电脑上的单个进程中运行



    哦,这样做之后,你就会知道为什么全局变量和单例是一件坏事。

    我的团队维护了几个生产分布式系统;我们必须对其进行单元测试,以便捕获协议错误

    我们将时钟和网络的存根实现注入到类中。该网络模仿了许多分布式系统论文中使用的消息传递模型:随机选取一条消息并传递它。这很好地模拟了网络延迟和不一致性。我们还内置了其他功能:能够阻止/释放或删除主机之间的消息;和一个简单的tcp模型

    通过这个简单的添加,我们的单元测试现在被称为交互测试。我们可以非常快速地添加任意多个服务器,这些服务器都可以在笔记本电脑上的单个进程中运行



    哦,这样做之后,你就会知道为什么全局变量和单例是件坏事。

    你在Virtualbox上使用过Android-x86吗?Android-x86运行速度比Android emulator快很多,您可以使用virtualbox上的桥接网络连接为每个实例提供自己的ipVirtualbox将再次为每个虚拟机使用大量RAM。必须为每个实例分配至少1GB的RAM。资源不是很理想。你有没有试过在Virtualbox上使用Android-x86?Android-x86运行速度比Android emulator快很多,您可以使用virtualbox上的桥接网络连接为每个实例提供自己的ipVirtualbox将再次为每个虚拟机使用大量RAM。必须为每个实例分配至少1GB的RAM。资源不是很优化。我想模拟至少5个。每个系统需要多少资源?5应该可以在任何Linux系统上轻松运行,除非您在docker容器中使用一些重型计算机。如果你需要扩展到100个容器,你可能需要一个更大的主机。我绝对应该对此进行更多的探索。谢谢你的帮助!我想模拟至少5个。每个系统需要多少资源?5应该可以在任何Linux系统上轻松运行,除非您在docker容器中使用一些重型计算机。如果你需要扩展到100个容器,你可能需要一个更大的主机。我绝对应该对此进行更多的探索。谢谢你的帮助!