我一直在关注这个文章关于运行 Windows Server 2012 R2 的 Google Compute VM 的更新,结果好坏参半。在 Microsoft 文章中,所有内容都标记为 True。
下面是 Google Compute 中运行相同版本 Windows Server 2012 R2 的两个不同虚拟机的屏幕截图
在此更新中,Windows 操作系统对 PCID 性能优化的支持已启用:False(如何将其设置为 True) 在此更新中,Windows 操作系统对 PCID 性能优化的支持已启用:True
我如何设置Windows OS 支持 PCID 性能优化为真
另外,看看屏幕截图,我还有其他问题吗?它们都可以像 Microsoft 文章一样设置为 True 吗?
提前致谢
答案1
答案2
请下载 Sysinternals Coreinfo。然后使用提升的命令提示符运行此程序。
CPU 功能有一长串的列表。
找到 PCID 和 INVPCID 功能。只有标有星号的功能才被激活,标有减号的功能未被激活。
请在两个 VM 映像上共享 CPU 名称(在系统屏幕中)。
我认为最新一代的 Xeon-Core 能够将 INVPCID 功能传递给客户机。
我有一台在 Xeon E5-2620 v3 (Haswell-EP) 上运行的 Windows Server2012 R2-VM。它无法激活 INVPCID。
直接在 Haswell-EP 上运行的 Win Server2012 R2(无需虚拟化)能够使用 INVPCID(100% 确定)。
第二个猜测是:
也许虚拟机的计费/合同存在差异。
让虚拟机仅在一个物理核心上运行 -> INVPCID 已启用
一个物理核心上运行多个虚拟机 -> INVPCID 已禁用
答案3
这是什么类型的虚拟机?在 VMware 中,您有以下 EVC 模式:
https://kb.vmware.com/s/article/1003212
Intel“Haswell”一代将
Intel“Haswell”一代处理器的基准功能集应用于集群中的所有主机。与 Intel“Ivy Bridge”一代 EVC 模式相比,此 EVC 模式提供了额外的 CPU 功能,包括 ABMX2、MOVBE、FMA、PERMD、RORX/MULX、INVPCID、VMFUNC。
答案4
如果硬件支持 INVPCID(即 Haswell 或更新版本),Windows 将使用 PCID。如果硬件不支持 INVPCID,Windows 将不会回退到使用普通 PCID;它根本不会使用该功能。
Meltdown 双页表要求处理器执行更多 TLB 刷新,有时甚至更多。PCID 专门用于切换到另一组页表,而无需清除 TLB。由于 Meltdown 需要修补,Windows 和 Linux 开发人员终于有充分的理由使用 PCID 和 INVPCID。
要检查您的处理器是否支持 PCID 和 INVPCID,请从 Microsoft 下载“Coreinfo.exe”,解压并使用命令窗口运行它。检查 PCID 和 INVPCID 前面第二列中的标记。“*” - 表示您的 CPU 支持该功能,“-”表示 CPU 不支持该功能。
就我而言,PCID 受支持,但 INVPCID 不受支持,因此 Windows 在 Meltdown 和 Specter 安全补丁之后禁用了 PCID 的使用。
您的大多数答案都来自不了解问题内容的白痴。