从观察CPU的关联设置到处理器可用性的检查,在使用管理程序的超线程处理器之前,需要考虑哪些事情。
超线程提供了性能优势,在管理程序中使用超线程时,超线程利用未使用的处理器资源,使处理器保持忙碌的状态,完成更多的任务。然而,管理程序中超线程的成功或者失败,取决于管理程序或操作系统是否可以探测到超线程技术。特定的虚拟机监控程序,例如VMware vSphere,在这一方面比较占优势。我们来仔细探讨一下,在向管理程序引入超线程之前,管理员应该考虑哪些事情。
管理程序的超线程,需要考虑哪些事情?
VMware vSphere 6通常在识别超线程处理器和调度处理器时间方面更有效率,从而能够智能地组织工作负载的线程分配。这是至关重要的,因为超线程基本上是利用自由的—未使用的或未被充分利用的—处理器执行资源的一种方式;超线程并不提供免费的处理器。如果管理程序最终试图将要求工作负载强加于两个逻辑处理器(位于同一物理核心)上,那么,工作负载可能会遭受严重的性能损失。如果缺乏管理程序或者操作系统的洞察力,最好将超线程关闭,将每个工作负载分配到不同的物理核心上。或者,你可以为工作负载提供多个非超线程的核心——多核,以增加可用的处理器资源。
超线程技术(HTT或HT)通常采用连续的CPU数量,所以,CPU 0和CPU 1处于第一核心,CPU 2和CPU 3处于第二核心,CPU 4和CPU 5处于第三核心等等。像VMware ESXi等虚拟机监控程序通常会将vm分配到不同的核心,而不是相同的核心。如果一个逻辑处理器处于空闲状态,则可以禁止其他同一核心的逻辑处理器使用所有处理器的执行资源。系统管理程序能够看到这些禁止状态,并且能够跟踪每个逻辑处理器的利用率。
工作负载调度存在的问题是:CPU关联偏好。管理员可以将VM绑定到vCPU。但是,如果两个要求工作负载都绑定到相同的核心逻辑处理器,其中一个工作负载就会出现同样的性能问题—通常—两个工作负载都会产生问题,因为底层物理核心不能满足两个线程的总处理要求。系统管理员必须密切关注CPU的关联设置,确保所有关联选择适合超线程处理器的工作负载。
不要忽视服务器中实际可用的处理器。几乎所有的现代服务器级别的处理器都支持超线程。例如,基于英特尔Xeon 5500架构处理器,英特尔奔腾4 HT-enabled,英特尔奔腾EE 840 HT-enabled以及后来的处理器模型,都能够处理超线程。然而,虚拟服务器还必须使用适合管理程序的处理器。
随着虚拟机监控程序的不断发展,老旧的处理器可能不再是合适的,因为这些老旧的处理器缺乏程序所需的某些特性和功能—这与超线程无关。例如,老式的AMD处理器包括Opteron 12 xx系列,Opteron 22 xx系列和Operton 82 xx系列不支持VMware vSphere 6—也不能安装。这意味着,在运行超线程或者安装/升级管理程序之前,检查系统要求是很重要的。
本文转自d1net(转载)
相关资源:JAVA上百实例源码以及开源项目