如何提高虛擬機性能睛蛛?利用這個特性來實現(xiàn)!

第一章 什么是綁核

線程綁核是指將線程綁定到特定的CPU核心上執(zhí)行胧谈,而不允許線程在不同核心之間切換執(zhí)行忆肾。這種操作可以有效地減少操作系統(tǒng)的上下文切換和負載均衡的開銷,從而提高程序的執(zhí)行效率菱肖。沒有綁核的線程則可以在多個CPU核心上隨意切換執(zhí)行客冈。這雖然可以讓操作系統(tǒng)更加靈活地分配CPU資源,并提高系統(tǒng)的負載均衡性稳强,但也會增加上下文切換的開銷和CPU緩存的失效率场仲。因此和悦,線程綁核和沒有綁核的區(qū)別主要在于執(zhí)行效率和系統(tǒng)負載均衡的優(yōu)化。需要根據(jù)具體的應(yīng)用場景進行選擇渠缕。

第二章 虛擬機綁核類型

2.1 不綁核

不綁核的情況下鸽素,虛擬機的線程在當前CPU資源池中按需分配CPU資源。此時一個虛擬機的線程亦鳞,一方面要進入線程隊列中等待分配時間片馍忽,而該線程隊列中不僅有自身虛擬機的線程,還有其他虛擬機的線程燕差,因此存在資源競爭遭笋。另一方面操作系統(tǒng)還要決策將該任務(wù)調(diào)度分配到哪個物理CPU上運行,然后要將線程的上下文切換到該CPU核中徒探,存在切換的時間瓦呼。但是由于這種分配方式較為靈活,不會預(yù)留CPU而浪費資源测暗,因此對于CPU資源要求和處理延遲要求不高的場景使用央串。

2.2 綁核

綁核又分為三個方式,分別是綁核不獨占線程綁核且獨占核和綁核且獨CPU偷溺。

2.2.1 綁核不獨占

幾乎不使用蹋辅。相比于不綁核的情況只是將從CPU池中獲取CPU資源變成了從指定的CPU核中獲取CPU資源。此時挫掏,虛擬機的線程同樣需要進入線程隊列中等待分配時間片侦另,線程隊列中也同樣可能存在其他虛擬機的線程,只是分配到的CPU核是固定的尉共,減少了線程在不同的CPU核進行上下文切換的時間褒傅。雖然也存在和其他虛擬機的資源競爭,但是如果該CPU核上其他虛擬機的線程少袄友,那么資源競爭就沒有不綁核那么劇烈殿托。由于這種情況對于處理延遲的提升不明顯。

2.2.2 綁核且獨占核

虛擬機綁核且獨占核是指將一個或多個物理核心分配給一個虛擬機剧蚣,并保證虛擬機是唯一能夠使用這些核心的支竹。這意味著在虛擬機運行期間,這些核心不會被分配給其他虛擬機或主機進程使用鸠按。這種方式通常是最常用的礼搁,即將虛擬機cpu與物理機cpu核進行綁定。綁核且獨占核通衬考猓可以使用以下命令查看:

virsh vcpuinfo <id>VCPU:           0CPU:            3        State:          running        CPU time:       198781.4s        CPU Affinity:   0x8VCPU:           1        CPU:            2        State:          running        CPU time:       198781.3s        CPU Affinity:   0x4
  • VCPU編號:表示虛擬機中的第幾個虛擬CPU馒吴,從0開始。
  • CPU編號:表示虛擬CPU當前綁定的物理CPU編號。
  • 狀態(tài):表示虛擬CPU的運行狀態(tài)饮戳,包括running(運行中)blocked(阻塞中)等豪治。
  • CPU時間:表示虛擬CPU從啟動到現(xiàn)在運行的總時間。
  • CPU Affinity:表示虛擬CPU綁定的物理CPU核心扯罐,以16進制的形式表示负拟。

如果是非綁核的虛擬機,則輸出以下內(nèi)容

VCPU:           0CPU:            -1State:          runningCPU time:       28.2sCPU Affinity:   0x0

或者使用vcpupin來確認歹河,以下這種輸出就是綁核虛擬機齿椅。

[root@kvm-host ~]# virsh vcpupin vm1VCPU:           CPU Affinity------------------------------------0:              0-31:              0-32:              0-33:              0-3

還可以通過查看xml文件來確認虛擬機是否綁核

<domain type='kvm'>  <name>examplevm</name>  <vcpu placement='static'>2</vcpu>  <cputune>    <vcpupin vcpu='0' cpuset='1'/>    <vcpupin vcpu='1' cpuset='2'/>  </cputune>  ...</domain>

<vcpu>標簽定義了虛擬機的虛擬CPU數(shù)量,這里設(shè)置為2启泣。<cputune>標簽下面的兩個<vcpupin>標簽定義了虛擬機中的兩個vCPU分別綁定在哪個CPU核心上勾拉,這里分別綁定在核心1和核心2上纬黎。

2.2.3 綁核且獨CPU

綁核且獨占 CPU 是指將整個物理 CPU 分配給一個虛擬機,并保證該虛擬機是唯一能夠使用該 CPU 的边锁。這意味著在虛擬機運行期間矾麻,該 CPU 不會被分配給其他虛擬機或主機進程使用纱耻。因此,兩者的區(qū)別在于資源分配的粒度不同险耀。虛擬機綁核且獨占核是將核心級別的資源分配給虛擬機弄喘,而綁核且獨占 CPU 則是將整個 CPU 分配給虛擬機。這意味著在綁定和獨占 CPU 的情況下甩牺,虛擬機將獲得更多的計算資源蘑志,但是這也意味著在虛擬機未使用 CPU 時,該 CPU 不能用于主機上的其他進程贬派。在綁定和獨占核的情況下急但,虛擬機只獲得了核心級別的資源,因此搞乏,即使虛擬機未使用該核心時波桩,該核心也可以用于主機上的其他進程。

第三章 如何創(chuàng)建綁核虛擬機

3.1 FS創(chuàng)建綁核虛擬機

在FuionSphere OpenStack中请敦,創(chuàng)建規(guī)格時可以設(shè)置綁核镐躲。在該解決方案中,綁核虛擬機核非綁核虛擬機不能共numa部署侍筛,即某個numa部署了綁核虛擬機萤皂,再創(chuàng)建非綁核虛擬機就會失敗。

3.2 kvm創(chuàng)建綁核虛擬機

1勾笆、使用virt-install命令創(chuàng)建虛擬機時敌蚜,可以使用--vcpus--cpu-set選項來指定虛擬機的CPU數(shù)量和綁定。例如:

virt-install --name vm_name --vcpus 2 --cpu host-passthrough --cpu-set 0,1 ...

其中窝爪,vm_name是虛擬機的名稱弛车,2是虛擬機的CPU數(shù)量齐媒,--cpu host-passthrough指定使用宿主機的CPU特性,--cpu-set 0,1指定將虛擬機綁定到CPU核心0和1上纷跛。

或者喻括,您可以在創(chuàng)建虛擬機時在XML配置文件中指定CPU綁定。在<vcpu>標簽下添加以下行:

<cputune>  <vcpupin vcpu='0' cpuset='0'/>  <vcpupin vcpu='1' cpuset='1'/></cputune>

其中贫奠,vcpu指定虛擬CPU的編號唬血,cpuset指定要綁定的CPU核心。

如果我的文章對你有幫助唤崭,歡迎關(guān)注我的同名公眾號~

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拷恨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谢肾,更是在濱河造成了極大的恐慌腕侄,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芦疏,死亡現(xiàn)場離奇詭異冕杠,居然都是意外死亡,警方通過查閱死者的電腦和手機酸茴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門分预,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人薪捍,你說我怎么就攤上這事笼痹。” “怎么了酪穿?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵与倡,是天一觀的道長。 經(jīng)常有香客問我昆稿,道長纺座,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任溉潭,我火速辦了婚禮净响,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喳瓣。我一直安慰自己馋贤,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布畏陕。 她就那樣靜靜地躺著配乓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上犹芹,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天崎页,我揣著相機與錄音,去河邊找鬼腰埂。 笑死飒焦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的屿笼。 我是一名探鬼主播牺荠,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驴一!你這毒婦竟也來了休雌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤肝断,失蹤者是張志新(化名)和其女友劉穎挑辆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孝情,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年洒嗤,在試婚紗的時候發(fā)現(xiàn)自己被綠了箫荡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡渔隶,死狀恐怖羔挡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情间唉,我是刑警寧澤绞灼,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站呈野,受9級特大地震影響低矮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜被冒,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一军掂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昨悼,春花似錦蝗锥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春穴张,著一層夾襖步出監(jiān)牢的瞬間细燎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工陆馁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留找颓,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓叮贩,卻偏偏與公主長得像击狮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子益老,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容