紅帽RHEL 6內(nèi)核優(yōu)化方面改進(jìn)概覽
在RHEL 6中,紅帽公司將只提供對(duì)內(nèi)核虛擬機(jī)(KVM)的支持。KVM會(huì)以一個(gè)單一模塊存在于內(nèi)核中,這意味著KVM虛擬機(jī)是以進(jìn)程的形式在該模塊的基礎(chǔ)之上運(yùn)行。這使得虛擬機(jī)管理起來要容易得多。為了使Linux虛擬化服務(wù)得到***優(yōu)化,RHEL 6對(duì)內(nèi)核進(jìn)行了一些改進(jìn)。本文簡要講述了其中一些最重要的改進(jìn)。
51CTO編輯推薦:紅帽企業(yè)級(jí)Linux RHEL 6專題
KVM虛擬化技術(shù)為RHEL 6提供了下一代虛擬化解決方案。因?yàn)镵VM比Xen更新更有效,所以紅帽公司將在RHEL 6中徹底放棄Xen(但會(huì)提供移植Xen虛擬機(jī)的方法)。
優(yōu)化的過程處理
RHEL進(jìn)程可以在儲(chǔ)存桶中組織:可以分配CPU和其他資源的實(shí)體。因?yàn)樘摂M機(jī)也是以進(jìn)程形式運(yùn)行,所以這個(gè)屬性也成為虛擬機(jī)運(yùn)行機(jī)制的一部分。
為了使虛擬機(jī)能夠在KVM中平穩(wěn)運(yùn)行,每一個(gè)虛擬CPU都被調(diào)度程序當(dāng)做一個(gè)線程來處理。為了進(jìn)行有效的調(diào)度,內(nèi)核啟用了一種新的操作模式——“訪客模式”。一個(gè)虛擬訪客不能直接對(duì)Linux內(nèi)核進(jìn)行系統(tǒng)調(diào)用(系統(tǒng)模式下的進(jìn)程則可以),但它卻能夠運(yùn)用管理調(diào)用與管理程序進(jìn)行對(duì)話。這種新的操作模式充分利用了Linux內(nèi)核的新功能,如調(diào)度、計(jì)數(shù)、內(nèi)核同頁合并(KSM)。
硬件支持方面的改進(jìn)
內(nèi)核升級(jí)還只是KVM性能的一部分。另一部分則在于硬件本身。RHEL 6內(nèi)核能夠充分利用幾個(gè)完全由硬件實(shí)現(xiàn)的功能。首先,關(guān)于CPU的支持,有擴(kuò)展頁表(EPT)。此項(xiàng)功能可以減少仿真的需要,從而使虛擬化服務(wù)運(yùn)行得更快。接著是在AMD環(huán)境下被稱為IOMMU、在Intel環(huán)境下被稱為VT-d的功能。這項(xiàng)功能允許用戶安全地直接使用物理I/O設(shè)備,同時(shí)保護(hù)相同的設(shè)備不會(huì)被其他用戶意外使用。這種保護(hù)措施是必要的,因?yàn)槿绻硞€(gè)用戶向一個(gè)已被占用的設(shè)備中寫數(shù)據(jù),就有可能導(dǎo)致主機(jī)崩潰。
另一項(xiàng)重要功能是SR-IOV。該功能指在PCI總線上虛擬I/O接口,安全地共享真實(shí)的硬件。該功能對(duì)網(wǎng)絡(luò)適配器尤其重要,能夠允許一個(gè)物理設(shè)備同時(shí)提供多個(gè)訪客用戶可以使用的虛擬設(shè)備。***一個(gè)能在虛擬環(huán)境下使用的重要硬件功能是NPIV。該功能允許共享儲(chǔ)存設(shè)備,這意味著每一位用戶都可以使用存儲(chǔ)設(shè)備的一部分。
為了利用這些硬件上的改進(jìn)功能,RHEL內(nèi)核得到了加強(qiáng)。例如,CPU方面的加強(qiáng)能夠允許用戶分配超過64個(gè)CPU。此外,由于內(nèi)核RCU同步機(jī)制的“鎖定”特性——實(shí)際上是沒有任何鎖的,只是一種在SMP對(duì)稱多處理器環(huán)境下避免鎖、提高性能的機(jī)制——能夠被分配的CPU數(shù)量有個(gè)最小值。
RHEL 6還有一些內(nèi)存方面的增強(qiáng)。首先,***項(xiàng)增強(qiáng)便是透明的大內(nèi)存分頁。這意味著大內(nèi)存分頁(允許內(nèi)核分配大的內(nèi)存塊而不是4KB的小塊)是動(dòng)態(tài)的,因此,在系統(tǒng)啟動(dòng)時(shí)就不用為內(nèi)存執(zhí)行分頁計(jì)劃。另一項(xiàng)則是對(duì)KVM有利的功能——內(nèi)核同頁合并。此項(xiàng)功能允許多個(gè)虛擬機(jī)同時(shí)訪問同一個(gè)管理頁面,清除啟動(dòng)階段所有的內(nèi)存頁面,提高了Windows虛擬機(jī)的性能。
下一個(gè)改進(jìn)的部分就是塊I/O。首先是本地異步IO和preadv/pwritev系統(tǒng)調(diào)用。有了這些,你可以在讀/寫之前將需要的內(nèi)存區(qū)域組合起來,提高多線程環(huán)境下的性能。內(nèi)核現(xiàn)在也已經(jīng)具有了MSI中斷支持。MSI中斷與PCI設(shè)備息息相關(guān),允許你在多路并行中斷線上工作。另一個(gè)相關(guān)改進(jìn)是塊對(duì)齊,如今,塊對(duì)齊的默認(rèn)值進(jìn)行了優(yōu)化,使得系統(tǒng)具有更好的性能。上述所有這些改進(jìn)都是為了提供內(nèi)核級(jí)的***性能。
一些特殊的I/O增強(qiáng)也為網(wǎng)絡(luò)接口性能的提高帶來了好處。其中最重要的一處增強(qiáng)便是將網(wǎng)絡(luò)空間的一部分從用戶空間移動(dòng)到內(nèi)核空間的虛擬主機(jī)網(wǎng)。這一點(diǎn)對(duì)virtio驅(qū)動(dòng)非常有用。virtion驅(qū)動(dòng)器還能為KVM用戶提供更好的網(wǎng)絡(luò)性能,同時(shí)允許用戶使用TAP驅(qū)動(dòng)與虛擬設(shè)備進(jìn)行對(duì)話。使用虛擬主機(jī)網(wǎng)的好處在于它直接掛靠在內(nèi)核中,因此能夠提供比需要仿真的qemu方法好得多的性能。
原文:http://www.searchsv.com.cn/showcontent_38950.htm
【編輯推薦】