亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種KVM的網(wǎng)絡(luò)性能優(yōu)化方法與流程

文檔序號(hào):12491662閱讀:441來(lái)源:國(guó)知局
一種KVM的網(wǎng)絡(luò)性能優(yōu)化方法與流程

本發(fā)明屬于KVM虛擬化領(lǐng)域,具體涉及一種KVM的網(wǎng)絡(luò)性能優(yōu)化方法。



背景技術(shù):

KVM是目前較為常用的一種虛擬化實(shí)現(xiàn)方案,而KVM在同時(shí)運(yùn)行的虛擬機(jī)數(shù)目達(dá)到較高數(shù)目時(shí),其網(wǎng)絡(luò)瓶頸往往成為制約其性能的關(guān)鍵,為了提升網(wǎng)絡(luò)性能,單純的更換千兆網(wǎng)卡為萬(wàn)兆網(wǎng)卡往往不能得到希望的結(jié)果。

在使用萬(wàn)兆網(wǎng)卡作為KVM的網(wǎng)絡(luò)通信手段下,如何更好的提升系統(tǒng)的網(wǎng)絡(luò)性能,減少系統(tǒng)的資源占用是急需解決的問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

為了克服上述問(wèn)題,本發(fā)明提供如下技術(shù)方案:

一種KVM的網(wǎng)絡(luò)性能優(yōu)化方法,KVM虛擬機(jī)系統(tǒng)將物理網(wǎng)卡虛擬成多個(gè)虛擬網(wǎng)卡,虛擬機(jī)管理器將每個(gè)虛擬網(wǎng)卡配置給虛擬機(jī),包括如下步驟:

S1. KVM虛擬機(jī)系統(tǒng)通過(guò)第一CPU檢測(cè)虛擬機(jī)數(shù)目;

S2.當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1小于設(shè)定閾值M時(shí),回到步驟S1;

S3.當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1大于等于設(shè)定閾值M時(shí),第一CPU判定所需虛擬網(wǎng)卡數(shù)目為N1;

S4.第一CPU將物理網(wǎng)卡配置為N1個(gè)虛擬網(wǎng)卡;

S5.虛擬機(jī)管理器采用intel VT-d技術(shù)通過(guò)軟件為每個(gè)虛擬機(jī)添加指定的虛擬網(wǎng)卡。

進(jìn)一步地,步驟S5之后還包括如下步驟:

S6. KVM虛擬機(jī)系統(tǒng)通過(guò)第一CPU檢測(cè)虛擬機(jī)數(shù)目M1是否發(fā)生變化;

S7.當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1不變時(shí),回到步驟S6;

S8.當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1發(fā)生變化時(shí),若虛擬機(jī)數(shù)目M1小于設(shè)定閾值M,第一CPU結(jié)束物理網(wǎng)卡的虛擬配置,回到步驟S1;

S9.若虛擬機(jī)數(shù)目M1大于等于設(shè)定閾值M,回到步驟S3。

進(jìn)一步地,所述步驟S4中第一CPU采用SR-IOV技術(shù)將物理網(wǎng)卡配置為N1個(gè)虛擬網(wǎng)卡,具體步驟如下:

S41,在BIOS中打開(kāi)VT-d技術(shù)和SR-IOV;

S42,編輯grub啟動(dòng)菜單:打開(kāi)輸入輸出內(nèi)存管理單元,指定IO調(diào)度器,解除每個(gè)虛擬網(wǎng)卡的內(nèi)存限制和輸入輸出控制的限制;

S43,設(shè)置Linux內(nèi)核參數(shù):設(shè)置KVM虛擬機(jī)系統(tǒng)的進(jìn)程最小運(yùn)行時(shí)間,設(shè)置KVM虛擬機(jī)系統(tǒng)的進(jìn)程被喚醒后最小運(yùn)行時(shí)間的基數(shù),設(shè)置KVM虛擬機(jī)系統(tǒng)一個(gè)運(yùn)行隊(duì)列所有進(jìn)程運(yùn)行一次的周期;

S44,加載物理網(wǎng)卡驅(qū)動(dòng)程序模塊配置文件,設(shè)置虛擬功能數(shù)等于虛擬網(wǎng)卡數(shù)目N1,同時(shí)禁用虛擬網(wǎng)卡驅(qū)動(dòng)程序。

進(jìn)一步地,所述步驟S8中結(jié)束物理網(wǎng)卡的虛擬配置的具體步驟如下:

S81,在BIOS中關(guān)閉VT-d技術(shù)和SR-IOV;

S82,加載物理網(wǎng)卡驅(qū)動(dòng)程序模塊配置文件,設(shè)置虛擬功能數(shù)等于0。

進(jìn)一步地,

所述步驟S42中指定deadline為默認(rèn)的IO調(diào)度器,通過(guò)Cgroup解除每個(gè)虛擬網(wǎng)卡的內(nèi)存限制和輸入輸出控制的限制;

所述步驟S43中KVM虛擬機(jī)系統(tǒng)的進(jìn)程最小運(yùn)行時(shí)間設(shè)置為4000000ns, KVM虛擬機(jī)系統(tǒng)的進(jìn)程被喚醒后最小運(yùn)行的時(shí)間的基數(shù)設(shè)置為4000000ns, KVM虛擬機(jī)系統(tǒng)一個(gè)運(yùn)行隊(duì)列所有進(jìn)程運(yùn)行一次的周期設(shè)置為32000000ns;

所述步驟S44中,加載物理網(wǎng)卡驅(qū)動(dòng)程序模塊配置文件為ixgbe.conf,同時(shí)禁用虛擬網(wǎng)卡驅(qū)動(dòng)程序?yàn)閕xgbevf。

進(jìn)一步地,所述KVM虛擬機(jī)系統(tǒng)運(yùn)行在多核服務(wù)器上,第一CPU處于忙碌狀態(tài)時(shí),其他空閑CPU檢測(cè)虛擬機(jī)數(shù)目。

進(jìn)一步地,步驟S3中所需虛擬網(wǎng)卡數(shù)目N1為虛擬機(jī)數(shù)目M1的倍數(shù)。

進(jìn)一步地,所述物理網(wǎng)卡10G網(wǎng)卡,數(shù)目至少為一個(gè)。

進(jìn)一步地,手動(dòng)將物理網(wǎng)卡中斷綁定到第二CPU,具體步驟如下:

a1,停止物理網(wǎng)卡中斷與CPU的自動(dòng)綁定狀態(tài);

a2,查看物理網(wǎng)卡對(duì)應(yīng)的網(wǎng)絡(luò)中斷號(hào);

a3,通過(guò)網(wǎng)絡(luò)中斷號(hào)把對(duì)應(yīng)物理網(wǎng)卡綁定到第二CPU。

進(jìn)一步地,當(dāng)?shù)诙﨏PU處于忙碌狀態(tài)時(shí),手動(dòng)將物理網(wǎng)卡中斷綁定到其他空閑的一個(gè)或多個(gè)CPU。

經(jīng)過(guò)網(wǎng)卡中斷手動(dòng)綁定和物理網(wǎng)卡虛擬化之前,有數(shù)據(jù)到達(dá)物理網(wǎng)卡,物理網(wǎng)卡產(chǎn)生中斷,中斷隨機(jī)分配到某個(gè)CPU,CPU響應(yīng)中斷,加載物理網(wǎng)卡驅(qū)動(dòng)程序,CPU將數(shù)據(jù)傳輸?shù)教摂M機(jī)管理器,虛擬機(jī)管理器將數(shù)據(jù)分配給某個(gè)虛擬機(jī)處理,數(shù)據(jù)處理完畢,產(chǎn)生中斷關(guān)閉信號(hào)給CPU。

經(jīng)過(guò)網(wǎng)卡中斷手動(dòng)綁定和物理網(wǎng)卡虛擬化之后,有數(shù)據(jù)到達(dá)物理網(wǎng)卡,物理網(wǎng)卡產(chǎn)生中斷,中斷到達(dá)綁定的第二CPU或者其他一個(gè)或多個(gè)空閑CPU,CPU響應(yīng)中斷,加載物理網(wǎng)卡驅(qū)動(dòng)程序,驅(qū)動(dòng)程序加載完畢,產(chǎn)生關(guān)中斷信號(hào)給CPU,物理網(wǎng)卡通過(guò)DMA將數(shù)據(jù)從虛擬網(wǎng)卡直接傳到對(duì)應(yīng)的虛擬機(jī),而不需要再經(jīng)過(guò)虛擬機(jī)管理器。

本發(fā)明的有益技術(shù)效果:本發(fā)明通過(guò)檢測(cè)虛擬機(jī)數(shù)目確定物理網(wǎng)卡的狀態(tài),虛擬機(jī)數(shù)目較多時(shí),將物理網(wǎng)卡虛擬分配成多個(gè)虛擬網(wǎng)卡,為每個(gè)虛擬機(jī)配置虛擬網(wǎng)卡,實(shí)現(xiàn)從虛擬機(jī)環(huán)境直接訪問(wèn)網(wǎng)卡,減少了網(wǎng)卡數(shù)量,簡(jiǎn)化了布線,減少了交換機(jī)端口,提高網(wǎng)卡的利用率,減少或消除對(duì)傳統(tǒng)服務(wù)器的CPU使用以及從物理網(wǎng)卡到虛擬機(jī)管理器再到虛擬機(jī)之間的數(shù)據(jù)流傳輸時(shí)間延遲,可以有效提升KVM下多虛擬機(jī)并行運(yùn)行時(shí)系統(tǒng)的網(wǎng)絡(luò)性能;同時(shí)手動(dòng)分配網(wǎng)卡中斷也可以有效減少因?yàn)橹袛喾峙湓斐傻南到y(tǒng)CPU占用過(guò)高問(wèn)題,可以顯著提升整體系統(tǒng)的網(wǎng)絡(luò)響應(yīng)速度。

此外,本發(fā)明設(shè)計(jì)原理可靠,結(jié)構(gòu)簡(jiǎn)單,具有非常廣泛的應(yīng)用前景。

由此可見(jiàn),本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步,其實(shí)施的有益效果也是顯而易見(jiàn)的。

附圖說(shuō)明

圖1為本發(fā)明的流程圖;

圖2為應(yīng)用本發(fā)明前的網(wǎng)絡(luò)示意圖;

圖3和圖4為本發(fā)明的網(wǎng)絡(luò)示意圖;

其中:1、10G網(wǎng)卡;2、第一虛擬網(wǎng)卡;3、第二虛擬網(wǎng)卡;4、第三虛擬網(wǎng)卡;5、第四虛擬網(wǎng)卡;6、第一虛擬機(jī);7、第二虛擬機(jī);8、第三虛擬機(jī);9、第四虛擬機(jī);10、第五虛擬網(wǎng)卡;11、第六虛擬網(wǎng)卡;12、第五虛擬機(jī);13、第六虛擬機(jī);14、第一CPU。

具體實(shí)施方式:

為使得本發(fā)明的目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本具體實(shí)施例中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地描述。

如圖1、圖2和圖3所示,本發(fā)明提供一種KVM的網(wǎng)絡(luò)性能優(yōu)化方法,KVM虛擬機(jī)系統(tǒng)將物理網(wǎng)卡虛擬成多個(gè)虛擬網(wǎng)卡,虛擬機(jī)管理器將每個(gè)虛擬網(wǎng)卡配置給虛擬機(jī),以虛擬機(jī)數(shù)目的設(shè)定閾值取4為例,包括如下步驟:

KVM虛擬機(jī)系統(tǒng)通過(guò)第一CPU檢測(cè)虛擬機(jī)數(shù)目;

當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1小于設(shè)定閾值4時(shí),第一CPU繼續(xù)檢測(cè)虛擬機(jī)數(shù)目;

當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1等于設(shè)定閾值4時(shí),第一CPU判定所需虛擬網(wǎng)卡數(shù)目為4;

第一CPU將物理網(wǎng)卡配置為4個(gè)虛擬網(wǎng)卡;第一CPU采用SR-IOV技術(shù)將物理網(wǎng)卡配置為4個(gè)虛擬網(wǎng)卡,具體步驟如下:

在BIOS中打開(kāi)VT-d技術(shù)和SR-IOV;

編輯grub啟動(dòng)菜單:打開(kāi)輸入輸出內(nèi)存管理單元,指定deadline為默認(rèn)的IO調(diào)度器,通過(guò)Cgroup解除每個(gè)虛擬網(wǎng)卡的內(nèi)存限制和輸入輸出控制的限制;

設(shè)置Linux內(nèi)核參數(shù):設(shè)置KVM虛擬機(jī)系統(tǒng)的進(jìn)程最小運(yùn)行時(shí)間為4000000ns,設(shè)置KVM虛擬機(jī)系統(tǒng)的進(jìn)程被喚醒后至少應(yīng)該運(yùn)行的時(shí)間的基數(shù)為4000000ns,設(shè)置KVM虛擬機(jī)系統(tǒng)一個(gè)運(yùn)行隊(duì)列所有進(jìn)程運(yùn)行一次的周期為32000000ns;

加載物理網(wǎng)卡驅(qū)動(dòng)程序模塊配置文件ixgbe.conf,添加虛擬功能數(shù)等于虛擬網(wǎng)卡數(shù)目4,禁用虛擬網(wǎng)卡驅(qū)動(dòng)程序ixgbevf。

虛擬機(jī)管理器采用intel VT-d技術(shù)通過(guò)軟件為每個(gè)虛擬機(jī)添加指定的虛擬網(wǎng)卡;

KVM虛擬機(jī)系統(tǒng)通過(guò)第一CPU檢測(cè)虛擬機(jī)數(shù)目M1是否發(fā)生變化;

當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1不變還是4時(shí),繼續(xù)回到前一步檢測(cè)虛擬機(jī)數(shù)目M1是否發(fā)生變化;

當(dāng)檢測(cè)到的虛擬機(jī)數(shù)目M1發(fā)生變化時(shí),若虛擬機(jī)數(shù)目M1小于設(shè)定閾值4,第一CPU結(jié)束物理網(wǎng)卡的虛擬配置,具體步驟如下:

在BIOS中關(guān)閉VT-d技術(shù)和SR-IOV;

加載物理網(wǎng)卡驅(qū)動(dòng)程序模塊配置文件為ixgbe.conf,設(shè)置虛擬功能數(shù)等于0;

繼續(xù)檢測(cè)虛擬機(jī)數(shù)目;

如圖4所示,若虛擬機(jī)數(shù)目M1為6大于設(shè)定閾值4時(shí),第一CPU重新判定所需虛擬網(wǎng)卡數(shù)目為6;

第一CPU將物理網(wǎng)卡配置為6個(gè)虛擬網(wǎng)卡;加載物理網(wǎng)卡驅(qū)動(dòng)程序模塊配置文件ixgbe.conf,添加虛擬功能數(shù)等于虛擬網(wǎng)卡數(shù)目6,禁用虛擬網(wǎng)卡驅(qū)動(dòng)程序ixgbevf。

虛擬機(jī)管理器采用intel VT-d技術(shù)通過(guò)軟件為每個(gè)虛擬機(jī)添加指定的虛擬網(wǎng)卡;

第一CPU繼續(xù)檢測(cè)虛擬機(jī)數(shù)目M1是否發(fā)生變化。

經(jīng)過(guò)網(wǎng)卡中斷手動(dòng)綁定和物理網(wǎng)卡虛擬化之前,有數(shù)據(jù)到達(dá)10G網(wǎng)卡1,10G網(wǎng)卡1產(chǎn)生中斷,中斷隨機(jī)分配到某個(gè)CPU,CPU響應(yīng)中斷,加載物理網(wǎng)卡驅(qū)動(dòng)程序,CPU將數(shù)據(jù)傳輸?shù)教摂M機(jī)管理器,虛擬機(jī)管理器將數(shù)據(jù)分配給某個(gè)虛擬機(jī)處理,數(shù)據(jù)處理完畢,產(chǎn)生中斷關(guān)閉信號(hào)給CPU。

經(jīng)過(guò)網(wǎng)卡中斷手動(dòng)綁定和物理網(wǎng)卡虛擬化之后,有數(shù)據(jù)到達(dá)10G網(wǎng)卡1,10G網(wǎng)卡1產(chǎn)生中斷,中斷到達(dá)綁定的第二CPU,第二CPU響應(yīng)中斷,加載物理網(wǎng)卡驅(qū)動(dòng)程序,驅(qū)動(dòng)程序加載完畢,產(chǎn)生關(guān)中斷信號(hào)給第二CPU,10G網(wǎng)卡1通過(guò)DMA將數(shù)據(jù)從虛擬網(wǎng)卡直接傳到對(duì)應(yīng)的虛擬機(jī),而不需要再經(jīng)過(guò)虛擬機(jī)管理器;第二CPU處于忙碌狀態(tài)時(shí),手動(dòng)將物理網(wǎng)卡中斷綁定到其他空閑的一個(gè)或多個(gè)CPU。

Kernel-based Virtual Machine的簡(jiǎn)稱,是一個(gè)開(kāi)源的系統(tǒng)虛擬化模塊,自Linux 2.6.20之后集成在Linux的各個(gè)主要發(fā)行版本中。

SR-IOV 技術(shù)是一種基于硬件的虛擬化解決方案,可提高性能和可伸縮性。SR-IOV 標(biāo)準(zhǔn)允許在虛擬機(jī)之間高效共享 PCIe(Peripheral Component Interconnect Express,快速外設(shè)組件互連)設(shè)備,并且它是在硬件中實(shí)現(xiàn)的,可以獲得能夠與本機(jī)性能媲美的 I/O 性能。SR-IOV 規(guī)范定義了新的標(biāo)準(zhǔn),根據(jù)該標(biāo)準(zhǔn),創(chuàng)建的新設(shè)備可允許將虛擬機(jī)直接連接到 I/O 設(shè)備。

英特爾VT具體包括分別針對(duì)處理器、芯片組、網(wǎng)絡(luò)的VT-X、VT-D和VT-C技術(shù)。intel VT-d是英特爾支持直接 I/O 訪問(wèn)的 VT虛擬化技術(shù)。

BIOS是英文"Basic Input Output System"的縮略詞,直譯過(guò)來(lái)后中文名稱就是"基本輸入輸出系統(tǒng)"。

GNU GRUB(GRand Unified Bootloader簡(jiǎn)稱“GRUB”)是一個(gè)來(lái)自GNU項(xiàng)目的多操作系統(tǒng)啟動(dòng)程序。GRUB是多啟動(dòng)規(guī)范的實(shí)現(xiàn),它允許用戶可以在計(jì)算機(jī)內(nèi)同時(shí)擁有多個(gè)操作系統(tǒng),并在計(jì)算機(jī)啟動(dòng)時(shí)選擇希望運(yùn)行的操作系統(tǒng)。GRUB可用于選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可用于向這些內(nèi)核傳遞啟動(dòng)參數(shù)。

Linux內(nèi)核2.6開(kāi)始引入了全新的IO調(diào)度子系統(tǒng)。Linux內(nèi)核提供了CFQ(默認(rèn)), deadline和noop三種IO調(diào)度器。deadline調(diào)度算法主要針對(duì)I/O請(qǐng)求的延時(shí)而設(shè)計(jì),每個(gè)I/O請(qǐng)求都被附加一個(gè)最后執(zhí)行期限。該算法維護(hù)兩類隊(duì)列,一是按照扇區(qū)排序的讀寫請(qǐng)求隊(duì)列;二是按照過(guò)期時(shí)間排序的讀寫請(qǐng)求隊(duì)列。如果當(dāng)前沒(méi)有I/O請(qǐng)求過(guò)期,則會(huì)按照扇區(qū)順序執(zhí)行I/O請(qǐng)求;如果發(fā)現(xiàn)過(guò)期的I/O請(qǐng)求,則會(huì)處理按照過(guò)期時(shí)間排序的隊(duì)列,直到所有過(guò)期請(qǐng)求都被發(fā)射為止。在處理請(qǐng)求時(shí),該算法會(huì)優(yōu)先考慮讀請(qǐng)求。 當(dāng)系統(tǒng)中存在的I/O請(qǐng)求進(jìn)程數(shù)量比較少時(shí),與CFQ算法相比,deadline算法可以提供較高的I/O吞吐率。

Cgroup 是control group的簡(jiǎn)稱,它為L(zhǎng)inux內(nèi)核提供了一種任務(wù)聚集和劃分的機(jī)制,通過(guò)一組參數(shù)集合將一些任務(wù)組織成一個(gè)或多個(gè)子系統(tǒng)。

ixgbe.conf是適用于 10 千兆位英特爾網(wǎng)絡(luò)連接基礎(chǔ)驅(qū)動(dòng)程序 。

ixgbevf是虛擬網(wǎng)卡驅(qū)動(dòng)程序。

DMA(Direct Memory Access,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,它允許不同速度的硬件裝置來(lái)溝通,而不需要依賴于 CPU 的大量中斷負(fù)載。

上述實(shí)施例是說(shuō)明性的,而非限定性的,上述實(shí)施例只是幫助理解本發(fā)明,因此本發(fā)明不限于具體實(shí)施方式中所述的實(shí)施例,凡是由本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出的其他的具體實(shí)施方式,同樣屬于本發(fā)明保護(hù)的范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1