我想知道 LXC 是否可以提供完全隔离的基准测试环境。假设我们有 2 台相同的机器,装有相同的全新 Linux,并且没有网络连接。
第一台机器的平均负载为 50,第二台机器的平均负载仅为 1。
我在两台机器上放置相同的容器并运行任何程序的基准测试。
两台机器的性能是否相同?
如果没有,您知道有更好的方法来获得完全隔离的环境吗?我的意思是,一种虚拟化方法,可以在不依赖主机平均/当前负载的情况下获得相同的性能。
谢谢 :)
答案1
LXC 依靠控制组进行资源管理。控制组不仅限于 LXC,您还可以将它们用于系统上的正常进程。理论上,您可以配置控制组,以便您的容器在每个系统上都能获得一定份额的资源(例如 CPU 时间),无论有多少其他进程在竞争该资源。有关更多信息,请参阅 Red Hat 的资源管理指南。
答案2
两台机器的性能是否相同?
取决于主机的 CPU/核心数量和所施加的负载的性质,但答案很可能是:不,当然不是。
如果没有,您知道有更好的方法来获得完全隔离的环境吗?我的意思是,一种虚拟化方法,可以在不依赖主机平均/当前负载的情况下获得相同的性能。
如果您需要 100% 可靠的基准测试,那么唯一的方法就是在自己的硬件上运行每个基准测试。
虚拟化不是魔术。您仍然需要处理一组有限的硬件资源,而虚拟机管理程序需要在虚拟机之间共享这些资源。