虛擬化的主要優(yōu)勢(shì)之一是能夠動(dòng)態(tài)地添加CPU和RAM來(lái)運(yùn)行虛擬機(jī)。這是處理某些計(jì)算問(wèn)題的很好的辦法,并且還不需要停機(jī)時(shí)間和重新啟動(dòng)。
然而,在某些情況下,通過(guò)鼠標(biāo)點(diǎn)擊(動(dòng)態(tài)地或者其他方式)分配CPU和RAM會(huì)對(duì)你的服務(wù)器產(chǎn)生有害影響,所以你需要非常了解你的工作負(fù)載以及操作系統(tǒng)。
這涉及你正在運(yùn)行的工作負(fù)載類(lèi)型、操作系統(tǒng)調(diào)度以及虛擬機(jī)的虛擬CPU布局。虛擬CPU分配本來(lái)是很簡(jiǎn)單的,你只需要指定你想要分配的虛擬CPU數(shù)量即可。然而,隨著物理CPU內(nèi)核數(shù)量的增加,NUMA成為常態(tài),這使選擇變得很棘手,因?yàn)楝F(xiàn)在,幾乎每個(gè)主要管理程序都代表著一種虛擬CPU類(lèi)型選擇。
例如,如果你想分配四個(gè)虛擬CPU到你的虛擬機(jī),你可以在4個(gè)單核CPU、2個(gè)雙核CPU和1個(gè)四核CPU間選擇。雖然所有這些選擇都能夠增加四個(gè)虛擬CPU,但它們是以不同的方式實(shí)現(xiàn)的,而這種差異性可能會(huì)影響運(yùn)行虛擬服務(wù)器的操作系統(tǒng)調(diào)度做出的決定。
虛擬機(jī)煉金術(shù)
對(duì)于這些選擇,并沒(méi)有必須遵守的規(guī)則。正確的選擇完全取決于工作負(fù)載配置文件、使用的調(diào)度程序、操作系統(tǒng)版本或內(nèi)河版本。較老版本的內(nèi)河不太善于處理多核CPU,最好選擇單核CPU。而較新的內(nèi)核和操作系統(tǒng)版本更青睞于多核CPU。
除此之外,工作負(fù)載本身的性質(zhì)也有很大的影響。單線(xiàn)程和多線(xiàn)程工作負(fù)載將以不同的方式處理這些實(shí)例。在一些工作負(fù)載中可能只有細(xì)微的差別,但可能與其他工作負(fù)載存在巨大差異。
NUMA的優(yōu)勢(shì)在于更快的內(nèi)存存取,并能顯著地加快處理器和RAM密集型流程。如果CPU核心只與CPU控制的內(nèi)存交互,它將會(huì)更快地執(zhí)行,因?yàn)樗恍枰缭降搅硪粋€(gè)CPU來(lái)分配和使用內(nèi)存。