從觀察CPU的關(guān)聯(lián)設(shè)置到處理器可用性的檢查,在使用管理程序的超線程處理器之前,需要考慮哪些事情。
超線程提供了性能優(yōu)勢(shì),在管理程序中使用超線程時(shí),超線程利用未使用的處理器資源,使處理器保持忙碌的狀態(tài),完成更多的任務(wù)。然而,管理程序中超線程的成功或者失敗,取決于管理程序或操作系統(tǒng)是否可以探測(cè)到超線程技術(shù)。特定的虛擬機(jī)監(jiān)控程序,例如VMware vSphere,在這一方面比較占優(yōu)勢(shì)。我們來(lái)仔細(xì)探討一下,在向管理程序引入超線程之前,管理員應(yīng)該考慮哪些事情。
管理程序的超線程,需要考慮哪些事情?
VMware vSphere 6通常在識(shí)別超線程處理器和調(diào)度處理器時(shí)間方面更有效率,從而能夠智能地組織工作負(fù)載的線程分配。這是至關(guān)重要的,因?yàn)槌€程基本上是利用自由的—未使用的或未被充分利用的—處理器執(zhí)行資源的一種方式;超線程并不提供免費(fèi)的處理器。如果管理程序最終試圖將要求工作負(fù)載強(qiáng)加于兩個(gè)邏輯處理器(位于同一物理核心)上,那么,工作負(fù)載可能會(huì)遭受嚴(yán)重的性能損失。如果缺乏管理程序或者操作系統(tǒng)的洞察力,最好將超線程關(guān)閉,將每個(gè)工作負(fù)載分配到不同的物理核心上。或者,你可以為工作負(fù)載提供多個(gè)非超線程的核心——多核,以增加可用的處理器資源。
超線程技術(shù)(HTT或HT)通常采用連續(xù)的CPU數(shù)量,所以,CPU 0和CPU 1處于第一核心,CPU 2和CPU 3處于第二核心,CPU 4和CPU 5處于第三核心等等。像VMware ESXi等虛擬機(jī)監(jiān)控程序通常會(huì)將vm分配到不同的核心,而不是相同的核心。如果一個(gè)邏輯處理器處于空閑狀態(tài),則可以禁止其他同一核心的邏輯處理器使用所有處理器的執(zhí)行資源。系統(tǒng)管理程序能夠看到這些禁止?fàn)顟B(tài),并且能夠跟蹤每個(gè)邏輯處理器的利用率。
工作負(fù)載調(diào)度存在的問(wèn)題是:CPU關(guān)聯(lián)偏好。管理員可以將VM綁定到vCPU。但是,如果兩個(gè)要求工作負(fù)載都綁定到相同的核心邏輯處理器,其中一個(gè)工作負(fù)載就會(huì)出現(xiàn)同樣的性能問(wèn)題—通常—兩個(gè)工作負(fù)載都會(huì)產(chǎn)生問(wèn)題,因?yàn)榈讓游锢砗诵牟荒軡M足兩個(gè)線程的總處理要求。系統(tǒng)管理員必須密切關(guān)注CPU的關(guān)聯(lián)設(shè)置,確保所有關(guān)聯(lián)選擇適合超線程處理器的工作負(fù)載。
不要忽視服務(wù)器中實(shí)際可用的處理器。幾乎所有的現(xiàn)代服務(wù)器級(jí)別的處理器都支持超線程。例如,基于英特爾Xeon 5500架構(gòu)處理器,英特爾奔騰4 HT-enabled,英特爾奔騰EE 840 HT-enabled以及后來(lái)的處理器模型,都能夠處理超線程。然而,虛擬服務(wù)器還必須使用適合管理程序的處理器。
隨著虛擬機(jī)監(jiān)控程序的不斷發(fā)展,老舊的處理器可能不再是合適的,因?yàn)檫@些老舊的處理器缺乏程序所需的某些特性和功能—這與超線程無(wú)關(guān)。例如,老式的AMD處理器包括Opteron 12 xx系列,Opteron 22 xx系列和Operton 82 xx系列不支持VMware vSphere 6—也不能安裝。這意味著,在運(yùn)行超線程或者安裝/升級(jí)管理程序之前,檢查系統(tǒng)要求是很重要的。