超线程技术允许单个物理处理器内核像两个逻辑处理器一样工作。该处理器可同时运行两个独立的应用程序。为了避免将逻辑处理器和物理处理器混淆,Intel 将物理处理器称为插槽,本章的讨论也使用这一术语。

Intel Corporation 开发了超线程技术来增强 Pentium IV 和 Xeon 处理器系列的性能。超线程技术允许单个处理器内核同时执行两个独立的线程。

虽然超线程不会使系统的性能加倍,但是它可以通过更好地利用空闲资源来提高性能,使得某些重要的工作负载类型产生更大的吞吐量。如果应用程序运行在忙碌内核的一个逻辑处理器上,则与单独运行在非超线程处理器上相比,预期获得的吞吐量会稍高于一半。超线程性能改进情况与应用程序有很大关系,有些应用程序使用超线程可能会出现性能下降的情况,因为两个逻辑处理器之间会共享许多处理器资源(例如缓存)。

注: 在具有 Intel 超线程技术的处理器上,每个内核可以具有两个逻辑处理器,这两个逻辑处理器共享大多数内核资源(如内存缓存和功能单元)。此类逻辑处理器通常称为线程。

有些处理器不支持超线程,因此每个内核仅有一个线程。对于此类处理器,内核数目还与逻辑处理器的数目相匹配。

超线程和 ESXi 主机

支持超线程的主机应具有与没有超线程的主机类似的行为。但是,如果启用超线程,则可能需要考虑某些因素。

ESXi 主机以智能方式管理处理器时间,保证负载均匀分布在系统的多个处理器内核上。相同内核上的逻辑处理器具有连续的 CPU 编号,因此 CPU 0 和 1 一起在第一个内核上,而 CPU 2 和 3 在第二个内核上,依此类推。优先在两个不同的内核上调度虚拟机,然后才选择在同一内核的两个逻辑处理器上调度虚拟机。

如果逻辑处理器没有工作,则将其置于暂停状况,从而释放其执行资源并允许在同一内核的另一个逻辑处理器上运行的虚拟机使用该内核的全部执行资源。VMware 调度程序会正确地考虑此暂停时间,因此使用全部内核资源运行的虚拟机的效率要高于在半个内核上运行的虚拟机。按这种方法管理处理器可确保服务器不会违反任何标准的 ESXi 资源分配规则。

在使用超线程的主机上启用 CPU 关联性之前,请考虑资源管理需求。例如,如果将高优先级虚拟机绑定到 CPU 0,并将另一个高优先级虚拟机绑定到 CPU 1,则这两个虚拟机必须共享相同的物理内核。这种情况下,可能无法满足这些虚拟机的资源需求。请确保所有的自定义关联性设置对超线程系统都有意义。

启用超线程

要启用超线程,必须首先在系统的 BIOS 设置中将其启用,然后在 vSphere Client 中打开它。超线程在默认情况下处于启用状态。

请查阅系统文档,确定您的 CPU 是否支持超线程。

过程

  1. 请确保您的系统支持超线程技术。
  2. 在系统 BIOS 中启用超线程。
    有些制造商将该选项标记为 逻辑处理器,而有些制造商则称之为 启用超线程
  3. 确保为 ESXi 主机启用超线程。
    1. vSphere Client 中,浏览到主机。
    2. 单击配置
    3. 系统下,单击高级系统设置,然后选择 VMkernel.Boot.hyperthreading
      必须重新启动主机,才能使设置生效。如果值为 有效,将启用超线程。
  4. 硬件下,单击处理器以查看逻辑处理器的数量。

结果

超线程已启用。