我获得了一台具有 8 个逻辑处理器的 VMware ESXi VM(运行 Windows Server 2016 SE),但我无法判断该 VM 是否是超线程的。 (这对 SQL Server 很重要。)
C:\Users\XXXXXXX>wmic CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors
DeviceID NumberOfCores NumberOfLogicalProcessors
CPU0 2 2
CPU1 2 2
CPU2 2 2
CPU3 2 2
wmic
表示有四个 CPU,每个 CPU 有两个核心。每个核心上有两个逻辑处理器是否意味着禁用超线程?
答案1
由于您是在询问 SQL Server,因此查看 Windows 是否使用超线程的最简单方法是通过查看 DMV 来询问 SQL Serversys.dm_os_sys_info:
SELECT
LogicalCoreCount = cpu_count,
PhysicalCoreCount = socket_count * cores_per_socket
FROM sys.dm_os_sys_info;
如果您的逻辑核心数量更高(两倍),则 Windows 正在对核心进行超线程处理。由于您在 VMware 上运行 VM,我预计您会看到逻辑核心和物理核心相同。VMware 可能仍会在主机上的虚拟化层实现超线程。
要查看这一点,只需进入 vCenter 并查找主机。
- 在 vSphere Web Client 导航器中浏览到主机。
- 单击配置并展开硬件。
- 选择处理器来查看有关物理处理器的数量和类型以及逻辑处理器数量的信息。