经过一番广泛搜索后,我还是找不到问题的答案。抱歉,不知道这是否显而易见,但我就是想知道。我有一台资源非常少的服务器,2GB RAM 和 2 个核心。我想在其上运行一些 Web 服务,并希望在至少三个 Linux VM 中执行这些服务。我是否可以设置我的虚拟机软件,使其根据客户操作系统的资源需求共享核心?我最喜欢的虚拟机软件是 VmWare,如果可能的话,我喜欢使用它。
答案1
在这种情况下,您可以将每个虚拟机设置为最多两个核心。核心越多,每个处理任务的等待时间就越长。您当然可以为每个虚拟机分配两个核心,但这对它们没有帮助。
至于内存,您不想过度使用。我的建议是留出 20% 给主机,其余部分则分配给其他人。您可以监控内存并进行更改,以便为每台机器提供其使用的最大值,但您将很快开始使用暂存/页面文件并烧毁磁盘。对于 Web 服务器,根据发行版和安装的软件包,每个服务器使用 256-512mb 内存可能比较安全。
答案2
是的。VMWare 默认共享 CPU/核心。
当 ESXi 主机运行多个虚拟机时,它会为每个虚拟机分配物理资源份额。使用默认资源分配设置,与同一主机相关联的所有虚拟机将获得每个虚拟 CPU 的相等 CPU 份额。这意味着单处理器虚拟机仅分配双处理器虚拟机的一半资源。
如果您的主机有 2 个核心,而您的 3 个客户机各有一个核心,则每个客户机将拥有 60% 的 CPU 份额 - 最坏的情况。如果 1 个客户机很忙,而其他两个客户机空闲,那么繁忙的客户机将获得一个 CPU 核心的 100%。如果所有 3 个客户机都很忙,那么它们将平均分配 CPU 资源。