溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

發(fā)布時(shí)間:2021-12-30 11:21:13 來源:億速云 閱讀:167 作者:柒染 欄目:云計(jì)算

本篇文章給大家分享的是有關(guān)如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

概述:虛擬化是一個(gè)廣義術(shù)語,通常是指計(jì)算元件在虛擬的基礎(chǔ)上而不是真實(shí)的基礎(chǔ)上運(yùn)行,是一個(gè)為了簡(jiǎn)化管理,優(yōu)化資源的解決方案.服務(wù)器虛擬化則是一項(xiàng)用以整合基于x86服務(wù)器,來提高資源利用效率和性能的技術(shù).下面從企業(yè)業(yè)務(wù)系統(tǒng)和管理角度出發(fā),著重分析研究了X86技術(shù)架構(gòu)下,虛擬網(wǎng)卡與SR-IOV、NUMA、虛擬磁盤格式相應(yīng)的特點(diǎn),并探索了不同應(yīng)用場(chǎng)景下的資源劃分和性能優(yōu)化方案,希望能夠通過多應(yīng)用系統(tǒng)下的實(shí)踐和最優(yōu)配置,來提高X86服務(wù)器的性能和資源利用效率.

1 x86虛擬化兩種常見的架構(gòu)

對(duì)于x86虛擬化,有兩種常見的架構(gòu):寄居架構(gòu)和裸金屬架構(gòu).寄居架構(gòu)將虛擬化層運(yùn)行在操作系統(tǒng)之上,當(dāng)作一個(gè)應(yīng)用來運(yùn)行,對(duì)硬件的支持很廣泛.相對(duì)的,裸金屬架構(gòu)直接將虛擬化層運(yùn)行在x86的硬件系統(tǒng)上,可以直接訪問硬件資源,無需通過操作系統(tǒng)來實(shí)現(xiàn)硬件訪問,因此效率更高.Vmware Workstation和VMware Server都是基于寄居架構(gòu)而實(shí)現(xiàn)的,而VMware ESX Server是業(yè)界第一個(gè)裸金屬架構(gòu)的虛擬化產(chǎn)品,目前已經(jīng)發(fā)布了第五代產(chǎn)品.ESX Server需要運(yùn)行在VMware認(rèn)證的硬件平臺(tái)上,可以提供出色的性能,完全可以滿足大型數(shù)據(jù)中心對(duì)性能的要求.本文主要論述的也是基于X86裸金屬架構(gòu)下的服務(wù)器的資源劃分和性能優(yōu)化問題.

2 x86虛擬化資源劃分的三個(gè)層面

服務(wù)器的資源劃分簡(jiǎn)單的講,包括網(wǎng)絡(luò)、計(jì)算、存儲(chǔ)三個(gè)層面.每一個(gè)虛機(jī)都在其連通的網(wǎng)絡(luò)中,承擔(dān)一定的計(jì)算任務(wù),把計(jì)算后的數(shù)據(jù)存儲(chǔ)下來供業(yè)務(wù)使用.

2.1 網(wǎng)絡(luò)層面
3.
從網(wǎng)絡(luò)層面來說,X86物理機(jī)使用的是物理的網(wǎng)卡,連接的是物理的交換機(jī).在一臺(tái)X86被劃分成多個(gè)VM虛機(jī)后,就誕生了虛擬網(wǎng)卡和虛擬交換機(jī).這樣在虛擬和物理網(wǎng)絡(luò)之間就產(chǎn)生了流量傳輸與交互.如圖1所示.

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

同一臺(tái)物理機(jī)上劃分的VM有同一網(wǎng)段和不同網(wǎng)段之分,再根據(jù)虛機(jī)之間的網(wǎng)絡(luò)流量是否經(jīng)過物理網(wǎng)卡,具體可分為四種不同的情況:

第一種情況,比如某業(yè)務(wù)系統(tǒng)的VM在同一主機(jī)的同一網(wǎng)段,則虛擬機(jī)之間網(wǎng)絡(luò)流量不經(jīng)過主機(jī)物理網(wǎng)卡,其最大網(wǎng)絡(luò)流量為7.6GB.(測(cè)試方法:在testvm1上啟用jperf server作為網(wǎng)絡(luò)數(shù)據(jù)接收端,在testvm2中啟用jperf client連接jperf server發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包,同時(shí)加壓網(wǎng)絡(luò)流量.X86主機(jī)為雙萬兆網(wǎng)卡);

第二種情況,比如某業(yè)務(wù)系統(tǒng)的VM在同一主機(jī)的不同網(wǎng)段,則虛擬機(jī)之間網(wǎng)絡(luò)流量經(jīng)過主機(jī)物理網(wǎng)卡,其最大網(wǎng)絡(luò)流量為5.6GB.測(cè)試方法同上.

第三種情況,比如某業(yè)務(wù)系統(tǒng)的VM在不同主機(jī)的同一網(wǎng)段,則虛擬機(jī)之間網(wǎng)絡(luò)流量經(jīng)過主機(jī)物理網(wǎng)卡,其最大網(wǎng)絡(luò)流量為6.5GB.測(cè)試方法同上.

第四種情況,比如某業(yè)務(wù)系統(tǒng)的VM在不同主機(jī)的不同網(wǎng)段,則虛擬機(jī)之間網(wǎng)絡(luò)流量經(jīng)過主機(jī)物理網(wǎng)卡,其最大網(wǎng)絡(luò)流量為4.6GB.測(cè)試方法同上.

測(cè)試的幾種場(chǎng)景對(duì)比表如表1所示。

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

在一臺(tái)X86物理服務(wù)器上進(jìn)行VM的網(wǎng)絡(luò)虛擬化,還有一種技術(shù)就是SR-IOV.SR-IOV 技術(shù)是INTEL提出的一種基于硬件的虛擬化解決方案,可提高性能和可伸縮性.SR-IOV 標(biāo)準(zhǔn)允許在虛擬機(jī)之間高效共享 PCIe(Peripheral Component Interconnect Express,快速外設(shè)組件互連)設(shè)備,并且它是在硬件中實(shí)現(xiàn)的,可以獲得能夠與本機(jī)性能媲美的網(wǎng)絡(luò) I/O 性能.比如我們把一臺(tái)X86物理服務(wù)器上的萬兆網(wǎng)卡通過SR-IOV技術(shù)分成4個(gè)虛擬網(wǎng)卡給4個(gè)VM使用,那么其網(wǎng)絡(luò)傳輸性能將比虛擬化網(wǎng)卡給VM使用高很多.

測(cè)試方法:在一臺(tái)X86物理服務(wù)器上,4個(gè)VM啟用jperf server作為網(wǎng)絡(luò)數(shù)據(jù)接收端;在另一臺(tái)X86物理服務(wù)器上,4個(gè)VM啟用jperf client連接jperf server發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包,同時(shí)加壓網(wǎng)絡(luò)流量.兩臺(tái)X86主機(jī)為雙萬兆網(wǎng)卡.

SR-IOV虛擬化測(cè)試架構(gòu)如圖2所示.

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量對(duì)比如表2所示.

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

普通的虛擬化傳輸?shù)淖畲髷?shù)據(jù)量為4.6Gbps,而SR-IOV的直接硬件虛擬化可達(dá)到9.4Gbps.

具有 SR-IOV 功能的設(shè)備還有以下優(yōu)點(diǎn):節(jié)能、減少了適配器數(shù)量,同時(shí)簡(jiǎn)化了布線,減少了交換機(jī)端口.SR-IOV有很多優(yōu)點(diǎn),但是也有很多限制,比如VMWARE里的原有的很多功能將對(duì)SR-IOV 的虛擬機(jī)不可用.比如Vmotion、Storage Vmotion、Vshield、NetFlow、High Availability、FT、DRS、DPM、掛起和恢復(fù)、快照、熱添加和刪除虛擬設(shè)備、加入到群集環(huán)境.

因此,我們?cè)诳紤]x86網(wǎng)絡(luò)虛擬化的時(shí)候,更多的需要結(jié)合性能、業(yè)務(wù)特點(diǎn)、基礎(chǔ)設(shè)施來綜合考慮.如果一個(gè)業(yè)務(wù)要求比較高的性能同時(shí)不需要更多的靈活性,可以考慮SR-IOV技術(shù).反之則選擇X86常見的網(wǎng)絡(luò)虛擬化技術(shù),結(jié)合VMWARE來進(jìn)行部署.

2.2 計(jì)算層面

從計(jì)算層面來說,X86物理服務(wù)器上的CPU、內(nèi)存資源都可提供給虛擬機(jī)使用.現(xiàn)在的高性能X86服務(wù)器一般都是多CPU多核系統(tǒng),NUMA 架構(gòu)會(huì)越來越受歡迎,因?yàn)檫@個(gè)架構(gòu)可解決多處理器多核和非統(tǒng)一內(nèi)存架構(gòu)之間的交互帶來的新的CPU、內(nèi)存資源分配方法的挑戰(zhàn),并改善占用大量?jī)?nèi)存的工作負(fù)載的性能. NUMA架構(gòu)如圖3所示.

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

傳統(tǒng)的服務(wù)器架構(gòu)下是把內(nèi)存放到單一的存儲(chǔ)池中,這對(duì)于單處理器或單核心的系統(tǒng)工作良好.但是這種傳統(tǒng)的統(tǒng)一訪問方式,在多核心同時(shí)訪問內(nèi)存空間時(shí)會(huì)導(dǎo)致資源爭(zhēng)用和性能問題.而NUMA是服務(wù)器CPU和內(nèi)存設(shè)計(jì)的新架構(gòu),它改變了內(nèi)存對(duì)CPU的呈現(xiàn)方式,這是通過對(duì)服務(wù)器每個(gè)CPU的內(nèi)存進(jìn)行分區(qū)來實(shí)現(xiàn)的.每個(gè)分區(qū)(或內(nèi)存塊)稱為NUMA節(jié)點(diǎn),而和該分區(qū)相關(guān)的處理器可以更快地訪問NUMA內(nèi)存,而且不需要和其它的NUMA節(jié)點(diǎn)爭(zhēng)用服務(wù)器上的資源(其它的內(nèi)存分區(qū)分配給其它處理器).NUMA也支持任意一個(gè)處理器訪問服務(wù)器上的任何一塊內(nèi)存區(qū)域.某個(gè)處理器當(dāng)然可以訪問位于不同區(qū)域上的內(nèi)存數(shù)據(jù),但是卻需要更多本地NUMA節(jié)點(diǎn)之外的傳輸,并且需要目標(biāo)NUMA節(jié)點(diǎn)的確認(rèn).這增加了整體開銷,影響了CPU和內(nèi)存子系統(tǒng)的性能.

例如一臺(tái)配置了兩顆八核處理器以及128GB內(nèi)存的服務(wù)器.在NUMA架構(gòu)中,每個(gè)處理器能夠控制64GB的物理內(nèi)存,每個(gè)處理器的八個(gè)核心中的每個(gè)核心將對(duì)應(yīng)一個(gè)8GB的NUMA節(jié)點(diǎn).這將會(huì)如何影響虛擬機(jī)性能?由于每個(gè)處理器核心訪問NUMA節(jié)點(diǎn)內(nèi)內(nèi)存的速度要比其他節(jié)點(diǎn)快,因此當(dāng)虛擬機(jī)內(nèi)存大小少于或者等于NUMA節(jié)點(diǎn)的內(nèi)存大小時(shí),虛擬機(jī)在理論上能夠獲得最好的性能.所以我們?cè)谶@臺(tái)物理服務(wù)器上分配虛機(jī)時(shí),不要給每臺(tái)虛擬機(jī)分配超過8GB的內(nèi)存.如果給虛擬機(jī)分配更多的內(nèi)存,則虛擬機(jī)必然要訪問其NUMA節(jié)點(diǎn)之外的部分內(nèi)存,這樣或多或少會(huì)影響其性能.如果應(yīng)用能夠感知NUMA,那就更好了.vSphere使用vNUMA可以創(chuàng)建能夠感知NUMA的虛擬機(jī).該虛擬機(jī)將會(huì)被分割為虛擬NUMA節(jié)點(diǎn),每個(gè)vNUMA節(jié)點(diǎn)將會(huì)被放置到一個(gè)不同的物理NUMA節(jié)點(diǎn).盡管虛擬機(jī)仍舊在兩個(gè)NUMA節(jié)點(diǎn)之間擴(kuò)展,但虛擬機(jī)內(nèi)的操作系統(tǒng)和應(yīng)用能夠感知NUMA,資源使用將會(huì)得到優(yōu)化.

NUMA已經(jīng)對(duì)在數(shù)據(jù)中心服務(wù)器上安裝及選擇內(nèi)存的方式帶來了很多改變.在給服務(wù)器增加物理內(nèi)存時(shí),我們需要注意增加的內(nèi)存要在NUMA節(jié)點(diǎn)之間進(jìn)行平衡及匹配以使主板上的每個(gè)處理器擁有相同的內(nèi)存.如果在我們所舉例的服務(wù)器上配置更多的內(nèi)存,那么必須在處理器之間平衡這些內(nèi)存模塊.如果增加64GB的內(nèi)存,那么每個(gè)處理器將分配到32GB的內(nèi)存(每個(gè)處理器可支配的內(nèi)存將增加到96GB,服務(wù)器總內(nèi)存數(shù)將達(dá)到192GB),每個(gè)NUMA節(jié)點(diǎn)的內(nèi)存大小將從8GB增加到12GB.

結(jié)合VMWARE的最佳實(shí)踐,VMware一般給CPU建議,最大支持64個(gè)vCPU,一般不超過32個(gè),最好不要超配置;內(nèi)存一般不給建議,根據(jù)不同的業(yè)務(wù)對(duì)內(nèi)存大小會(huì)有不同的要求,當(dāng)然最好不要跨NUMA單元去進(jìn)行調(diào)用.另外還要注意一點(diǎn)NUMA架構(gòu)只針對(duì)物理CPU(Socket),不針對(duì)核(Core).由于每個(gè)Socket控制的內(nèi)存插槽是不同的,因此要確保內(nèi)存插槽是均勻的.例如128G內(nèi)存分為8個(gè)16G的內(nèi)存條,那么應(yīng)該4個(gè)插在一個(gè)Socket的內(nèi)存插槽中,另4個(gè)插在另一個(gè)socket的內(nèi)存插槽中.在為虛機(jī)分配vCPU資源時(shí),也盡可能按照Socket/Core的倍數(shù)分配,比如1X1, 1X2, 1X 4, 1X8, 2X1, 2X2, 2X4, 2X8等組合,但不要使用2X3, 2X5, 2X7這種組合.后面的組合會(huì)引起跨Socket的內(nèi)存調(diào)用,從而容易導(dǎo)致性能下降.

2.3 存儲(chǔ)層面
從存儲(chǔ)層面來說,X86物理服務(wù)器上的VM連接后端存儲(chǔ)劃過來的LUN.在Lun上創(chuàng)建虛擬磁盤有三種方式:厚置備延遲置零、厚置備置零與精簡(jiǎn)置備.如圖4所示.

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

厚置備延遲置零(zeroed thick)以默認(rèn)的厚格式創(chuàng)建虛擬磁盤.創(chuàng)建過程中為虛擬磁盤分配所需的全部空間.創(chuàng)建時(shí)不會(huì)擦除物理設(shè)備上保留的任何數(shù)據(jù),但是以后從虛擬機(jī)首次執(zhí)行寫操作時(shí)會(huì)按需要將其置零.簡(jiǎn)單的說就是立刻分配指定大小的空間,空間內(nèi)數(shù)據(jù)暫時(shí)不清空,以后按需清空;厚置備置零(eager zeroed thick)創(chuàng)建支持群集功能(如 Fault Tolerance)的厚磁盤.在創(chuàng)建時(shí)為虛擬磁盤分配所需的空間.與平面格式相反,在創(chuàng)建過程中會(huì)將物理設(shè)備上保留的數(shù)據(jù)置零.創(chuàng)建這種格式的磁盤所需的時(shí)間可能會(huì)比創(chuàng)建其他類型的磁盤長(zhǎng).簡(jiǎn)單的說就是立刻分配指定大小的空間,并將該空間內(nèi)所有數(shù)據(jù)清空;精簡(jiǎn)置備(thin)使用精簡(jiǎn)置備格式.最初,精簡(jiǎn)置備的磁盤只使用該磁盤最初所需要的數(shù)據(jù)存儲(chǔ)空間.如果以后精簡(jiǎn)磁盤需要更多空間,則它可以增長(zhǎng)到為其分配的最大容量.簡(jiǎn)單的說就是為該磁盤文件指定增長(zhǎng)的最大空間,需要增長(zhǎng)的時(shí)候檢查是否超過限額.

另外thin provision格式在VM使用的時(shí)候比起厚置備格式也會(huì)有一些負(fù)面的性能影響.這是因?yàn)閠hin provision格式的磁盤是動(dòng)態(tài)擴(kuò)大的,一個(gè)數(shù)GB大小的vmdk文件在磁盤上不是一次生成的,因此不像厚置備格式的磁盤那樣可以占用連續(xù)的磁盤空間,因此在訪問thin provision格式的磁盤的時(shí)候,必然會(huì)因?yàn)榇蓬^在不連續(xù)的磁盤塊之間移動(dòng)導(dǎo)致尋址時(shí)間較長(zhǎng),從而影響到Disk IO性能.

綜上所述,無論是在部署還是應(yīng)用時(shí),thin provision格式的性能都不如厚置備,所以在空間不緊張夠用的情況下建議大家使用厚置備格式的虛擬磁盤.

3 結(jié)合業(yè)務(wù)如何進(jìn)行x86虛擬化后的性能優(yōu)化
例如一個(gè)linux下的postfix郵件系統(tǒng),包含郵件服務(wù)器,數(shù)據(jù)庫和網(wǎng)絡(luò).從磁盤看郵件系統(tǒng)的一個(gè)最大的問題是:不是很多大文件的讀寫,而是很多小文件的讀寫,而且這些讀寫請(qǐng)求是來自同一時(shí)間的多個(gè)進(jìn)程或者線程.對(duì)這種很多小文件的讀寫應(yīng)用服務(wù),在分配郵件用戶所在的磁盤時(shí),建議使用Thin provision模式.這樣既避免了初始空間的大量占用,也可以做到隨需增長(zhǎng).

從內(nèi)存上看,對(duì)于postfix而言,它的每一個(gè)進(jìn)程不會(huì)消耗太多的內(nèi)存,我們期望的是大量的內(nèi)存被自動(dòng)使用到磁盤緩存中來提高磁盤I/O速率,當(dāng)然這個(gè)我們不需要操作,linux幫我們完成了!Linux虛擬內(nèi)存管理默認(rèn)將所有空閑內(nèi)存空間都作為硬盤緩存.因此在擁有數(shù)GB內(nèi)存的生產(chǎn)性Linux系統(tǒng)中,經(jīng)常可以看到可用的內(nèi)存只有20MB.從處理器上看郵件系統(tǒng),不管是smtp、imap對(duì)CPU的占用都不是很大.這樣我們?cè)诜峙銫PU和內(nèi)存資源時(shí),就可以按照NUMA架構(gòu)來配置固定大小的單元.比如一臺(tái)配置了兩顆八核處理器以及128GB內(nèi)存的服務(wù)器,虛擬化成4臺(tái)郵件服務(wù)器,就可以每臺(tái)分配成4核32G.

從網(wǎng)絡(luò)上看,郵件系統(tǒng)會(huì)頻繁的使用網(wǎng)絡(luò)子系統(tǒng),但是郵件系統(tǒng)的瓶頸還是磁盤的吞吐而不是網(wǎng)絡(luò)的吞吐,對(duì)應(yīng)這種應(yīng)用不要求強(qiáng)交互,延遲是允許的,所以網(wǎng)卡是虛擬的還是SR-IOV的影響都不大.

對(duì)于郵件系統(tǒng)的數(shù)據(jù)庫服務(wù)器,因?yàn)樾∥募S機(jī)讀寫比較多,數(shù)據(jù)庫的磁盤可以選擇厚置備模式,提高小數(shù)據(jù)塊的IO.

對(duì)于不同的業(yè)務(wù)系統(tǒng),具體的問題還需要具體分析,性能優(yōu)化不是一朝一夕的事,隨著業(yè)務(wù)的發(fā)展變化,優(yōu)化的技術(shù)手段和方式都會(huì)相應(yīng)的隨之改變.

4 從企業(yè)日常使用和管理角度看x86服務(wù)器的虛擬化
不同的企業(yè)級(jí)應(yīng)用對(duì)于CPU和內(nèi)存資源和空間的利用率是不同的.如何利用NUMA架構(gòu)來優(yōu)化資源的分配和提高性能對(duì)于企業(yè)數(shù)據(jù)中心的管理也是非常有意義的.見表3。

如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化

對(duì)于數(shù)據(jù)庫服務(wù)器,由于對(duì)CPU和內(nèi)存資源要求較高,不適合多機(jī)共享資源使用,所以盡可能使用配置較好的物理機(jī),而對(duì)于VDI桌面、文件服務(wù)器則更適合NUMA架構(gòu)下固定CPU和內(nèi)存單元的分配,郵件系統(tǒng)則需要根據(jù)具體情況做NUMA架構(gòu)的資源分配,對(duì)于隨需變化的網(wǎng)站則不一定全部適合做NUMA,比如網(wǎng)站中的緩存服務(wù)器則更適合做非NUMA架構(gòu)的內(nèi)存分配. 在分配磁盤空間時(shí),對(duì)IO性能需求比較大的業(yè)務(wù)系統(tǒng),適合做厚置備的空間分配;對(duì)IO性能需求不是很高的、業(yè)務(wù)增長(zhǎng)空間不是很大的業(yè)務(wù)系統(tǒng),則適合做精簡(jiǎn)配置的空間分配.

X86服務(wù)器虛擬化是一項(xiàng)用以整合服務(wù)器資源、提高效率的技術(shù).X86虛擬化可以帶來更高的服務(wù)器硬件及系統(tǒng)資源利用率,帶來具有透明負(fù)載均衡、動(dòng)態(tài)遷移、故障自動(dòng)隔離、系統(tǒng)自動(dòng)重構(gòu)的高可靠服務(wù)器應(yīng)用環(huán)境,以及更為簡(jiǎn)潔、統(tǒng)一的服務(wù)器資源分配管理模式.X86服務(wù)器虛擬化在資源劃分后的性能優(yōu)化也極大提高了數(shù)據(jù)中心的整體資源利用率,符合當(dāng)今綠色節(jié)能的新理念.

以上就是如何進(jìn)行X86服務(wù)器虛擬化的資源劃分和性能優(yōu)化,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI