启用在此更新中,Windows 操作系统对 PCID 性能优化的支持已启用 Windows Server 2012 R2

启用在此更新中,Windows 操作系统对 PCID 性能优化的支持已启用 Windows Server 2012 R2

我一直在关注这个文章关于运行 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

PCID(进程上下文标识符)是某些 CPU(主要是较新/较高端的,一般认为 Haswell(第 4 代)及以上版本)中存在的一项功能,有助于减轻由崩溃补丁带来的一些性能影响。

这不是您可以设置的 - 如果 Windows 检测到您的 CPU 支持 PCID,Windows 将使用它并在您列出的行中确认它已打开。

tldr:PCID 不会影响您的安全性,它会减轻一些性能影响。

PS:您可以检查正在进行的讨论和更新针对 Windows Server 2012 R2 Standard 的改进(和修复)也可用。

答案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 的使用。

您的大多数答案都来自不了解问题内容的白痴。

相关内容