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