昨天我联系了供应商购买服务器,我问他们我应该如何计算服务器的 CPU 和 RAM 需求,因为我想在服务器上创建多个虚拟服务器
他说 12 核(6 核 x 2 插槽)= 24 个逻辑处理器(采用超线程技术),如果您打算使用 VMware 虚拟化技术,它将使逻辑处理器翻倍,这意味着 48 个 vCPU
他说你可以创建 6 台虚拟服务器,每台有 8 个 vCPU,这已经足够了。
这个说法正确吗?我可以信赖它并购买它吗?
12 核等于 48 个 vCPU 吗?我可以创建 6 个虚拟服务器,每个服务器除以 8 个 vCPU 吗?
答案1
您的供应商正在向您出售一个简单的故事来解释一些可能很复杂的事情,但他们的故事有点不对。
首先:超线程不会为您提供额外的核心,它只是将任务切换从操作系统中抽象出来并在芯片上进行。这为操作系统提供了多个线程的外观,以便它可以根据线程需求分配任务,但这确实不是使该核心的功能加倍。它只是加快了某些任务的速度。
VMWare ESXi 具有超线程感知功能,因此它知道哪些“核心”是超线程核心,哪些是“真实”核心。因此,忘掉超线程,让 ESXi 来处理这个问题。
这意味着您有 12 个核心可供使用。我不知道您的供应商从哪里得到了 12 个核心为您提供 48 个 vCPU 的想法,除非他们假设 vCPU 与物理 CPU 的比例为 1:4(这可能是他们从 Kanye West 喜欢放在拇指上的某个地方获得的经验法则,但绝不是通用的)。
这对你想要做的事情来说足够了吗?除了你之外没有人能回答这个问题。你会想要阅读有关 ESXi 如何分配 vCPU 的信息很久以前(很多年前),ESX 使用“严格的协同调度”,这意味着分配任何vCPU 周期,全部该虚拟机的 vCPU 必须可用。目前他们使用“宽松协同调度”,ESXi 可以单独调度 vCPU。
如果您拥有几乎不使用任何 CPU 时间且几乎不执行任何工作的小型虚拟机,那么您可以在 12 核服务器上运行 40、50 甚至更多虚拟机。但是,如果您拥有大型数据库服务器、繁忙的终端服务器或任何其他类型的 CPU 密集型进程,那么在 12 核服务器上运行的虚拟机数量将少得多。
如果您需要 6 台虚拟机,并且每台虚拟机需要 8 个核心,那么我怀疑如果所有这些主机同时处于繁忙状态,您将在此主机上遇到争用问题。
回答这个问题的唯一方法由你:您需要了解您的工作负载、了解您的应用程序配置文件(它们是否始终以 100% CPU 运行、它们是否会在生成报告时爆发、它们是否在非工作时间进行维护等)、了解您的硬件、了解虚拟机管理程序如何分配其 vCPU,以及然后您可以对所需的硬件配置类型做出明智的决定。
1他的屁股