Ang*_*ker 67 windows windows-server-2008 virtual-machines
我们的 IT 创建了一个分配了 2 个 CPU 而不是我请求的 4 个 CPU 的 VM。他们的原因是 VM 使用 2 个 CPU 而不是 4 个 CPU 时性能更好(根据他们的说法)。基本原理是 VM 管理程序(在本例中为 VMWare)在使用任何 CPU 之前等待所有 CPU 可用。因此,等待 4 个而不是 2 个 CPU 需要更长的时间。
这个说法有意义吗?
Mar*_*son 62
这曾经是正确的,但不再完全正确。
他们所指的是Strict Co-Scheduling。
最重要的是,虽然在严格的协同调度算法中,滞后 vCPU 的存在会导致整个虚拟机被协同停止。在宽松的协同调度算法中,领先的 vCPU 根据与最慢的兄弟 vCPU 的偏差来决定是否应该协同停止自己
现在,如果主机只有 4 个线程,那么分配所有线程将是愚蠢的。如果它有两个处理器和每个处理器 4 个线程,那么您可能不想分配单个处理器的所有内容,因为您的虚拟机管理程序应该尝试将 vCPU 保留在同一个 NUMA 节点上以加快内存访问速度,而您通过将整个套接字分配给单个 VM 使这项工作变得更加困难(请参阅上面该 PDF 的第 12 页)。
因此,有场景中较少的vCPU可以执行超过更好,但它不是时间真的100%。
说了这么多,我很少为每个来宾分配超过 3 个 vCPU。默认情况下,每个人都获得 2 个,如果工作负载很重,则获得 3 个,而对于 SQL Server 或非常繁重的批处理 VM 或具有大量用户的终端服务器之类的东西,则获得 4 个。
小智 15
这在很大程度上取决于底层管理程序和运行它的管理员,让我解释一下:
你能从中学到什么?始终使用最少的资源创建 VM,并根据需要增加。始终横向扩展而不是向上扩展,您将能够在任何地方运行您的应用程序。
由于虚拟机管理程序可能会遇到锁定,因此 2 个 CPU 确实比 4 个 CPU 快。
| 归档时间: |
|
| 查看次数: |
12296 次 |
| 最近记录: |