云計算數(shù)據(jù)中心的網(wǎng)絡(luò)測試主要包含虛擬化測試、安全測試、高可靠測試和性能測試四個部分。前三者重點在于對數(shù)據(jù)中心網(wǎng)絡(luò)的功能設(shè)計進行測試驗證,性能測試則是度量整個云網(wǎng)絡(luò)的關(guān)鍵,用以確認其能夠提供的服務(wù)能力基線。
云計算技術(shù)目前很多應(yīng)用在大型的高性能計算(超算)數(shù)據(jù)中心中,在此類數(shù)據(jù)中心內(nèi)部,性能處于業(yè)務(wù)保障的第一關(guān)鍵位置。本文重點關(guān)注性能測試的部分,從測試設(shè)計方面進行探討。
測試設(shè)計
數(shù)據(jù)中心網(wǎng)絡(luò)性能測試手段很多,業(yè)務(wù)仿真測試是最能體現(xiàn)實際應(yīng)用情況的測試方法。業(yè)務(wù)仿真測試往往需要利用大量服務(wù)器和存儲設(shè)備,通過部署仿真應(yīng)用環(huán)境來測試網(wǎng)絡(luò)針對此類型應(yīng)用的轉(zhuǎn)發(fā)性能。但此方法受成本和測試復(fù)雜度影響,一般只在超大型且應(yīng)用較為單一的數(shù)據(jù)中心測試時使用,如百度/SOHU搜索業(yè)務(wù)仿真、QQ/MSN實時通訊業(yè)務(wù)仿真、石油勘探/氣象預(yù)報計算業(yè)務(wù)仿真等。
除了上述專用測試方法外,還可以通過測試儀器模擬一些基本的應(yīng)用流量來測試其主要性能。此方式由于實施簡便、通用型強,在數(shù)據(jù)中心網(wǎng)絡(luò)性能測試中應(yīng)用較多。
受當前整個Internet應(yīng)用使用情況影響,測試儀模擬的網(wǎng)絡(luò)應(yīng)用以TCP的HTTP為主,有時會根據(jù)具體的實際業(yè)務(wù)情況添加Mail、FTP和HTTPS進行補充,這種測試設(shè)計也符合當前云計算數(shù)據(jù)中心的實際應(yīng)用情況。
測試環(huán)境
在測試數(shù)據(jù)中心網(wǎng)絡(luò)性能時,通常使用成對的測試儀器端口,連接到數(shù)據(jù)中心網(wǎng)絡(luò)兩端,將整個網(wǎng)絡(luò)視為黑盒進行端到端的性能結(jié)果測試。典型測試組網(wǎng)設(shè)計如圖1所示。
圖1 數(shù)據(jù)中心性能典型測試組網(wǎng)
圖1中的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)采用典型的3層雙冗余結(jié)構(gòu)。核心層設(shè)備采用高端交換設(shè)備進行三層路由轉(zhuǎn)發(fā),其與匯聚層設(shè)備間通過OSPF動態(tài)路由協(xié)議互連,以提供多路冗余保障,同時通過只發(fā)布缺省路由到匯聚層設(shè)備的方式來減輕匯聚層設(shè)備的路由壓力;匯聚層設(shè)備作為模擬服務(wù)器設(shè)備的網(wǎng)關(guān)提供三層轉(zhuǎn)發(fā)功能,使能VRRP等網(wǎng)關(guān)冗余協(xié)議來保證雙機熱備,并通過VLANTRUNK方式與接入層設(shè)備相連;接入層設(shè)備部署為二層轉(zhuǎn)發(fā)模式,通過MSTP協(xié)議確保多VLAN環(huán)境下的冗余鏈路備份功能。
測試儀器通過多個接口分別與核心層設(shè)備和接入層設(shè)備連接,并模擬Client和Server進行有狀態(tài)的流量轉(zhuǎn)發(fā)性能測試。測試模擬的協(xié)議類型盡量與使用環(huán)境貼近,最常見的是使用HTTP協(xié)議進行基于L7的業(yè)務(wù)流量模擬。
另外為了確保數(shù)據(jù)中心測試的仿真度,還需要模擬大量的路由、VLAN和流數(shù)量。例如測試的為一個大型的企業(yè)云數(shù)據(jù)中心,則需要定義以下背景環(huán)境參量:
1. 首先設(shè)置背景路由,在核心設(shè)備上模擬發(fā)布1萬條OSPF散列路由,其發(fā)起源為50個Router,路由模擬調(diào)配比例為NetworkLSA:SummaryLSA:ExternalLSA=1:3:16
2. 然后設(shè)置背景VLAN與模擬服務(wù)器,在匯聚層與接入層設(shè)備上部署8個MSTP的Instance,每個Instance中包含8個VLAN,使用測試儀器在每個VLAN中模擬100個HostServer,總共64個VLAN,6400個Server。
3. 最后構(gòu)造測試流量,定義1萬個Client源IP地址一一對應(yīng)到模擬的1萬條散列OSPF路由中,目的IP地址64個,分別為模擬的64個VLAN中每個VLAN隨機抽取的各一個HostServer地址??偣矠?4萬條IP測試流。
上述測試參數(shù)定義均可通過測試儀器配置完成。
當測試環(huán)境部署完畢后,即可使用測試儀器進行整網(wǎng)性能指標的測試執(zhí)行工作。
關(guān)鍵指標及測試方法
衡量云計算數(shù)據(jù)中心的網(wǎng)絡(luò)性能根據(jù)使用的網(wǎng)絡(luò)設(shè)備不同擁有很多指標。常見的關(guān)鍵性能指標包括以下幾項:
1. L4新建速率(CPS)
2. L4并發(fā)數(shù)(CC)
3. L7吞吐量(GoodPut)
4. L7響應(yīng)時間(ResponseTime)
其中L4測試一般使用TCP協(xié)議構(gòu)造流量,L7測試使用HTTP協(xié)議構(gòu)造流量。下面就這幾項關(guān)鍵指標的測試方法進行介紹。
L4新建速率測試
L4新建速率指通過數(shù)據(jù)中心中間網(wǎng)絡(luò)每秒可以處理的TCPSession速率,單位為CPS(ConnectionsPerSecond)。
需要注意的是,這里的“新建”指的是一個TCPSession成功建立并關(guān)閉的整個過程,并不是單純指字面意義上的連接建立速率。在常見的L4新建速率測試中,主要使用TCP80端口的HTTP服務(wù)進行測試。測試配置中,關(guān)鍵在于以下幾點:
1. 將TCP關(guān)閉方式選擇使用TCPFIN報文觸發(fā)的4次握手關(guān)閉方式。此種方式最符合當前普遍的網(wǎng)絡(luò)協(xié)議應(yīng)用模型。在部分特殊業(yè)務(wù)需求的測試場景下可以采用TCPRESET方式進行快速會話關(guān)閉,以測出網(wǎng)絡(luò)系統(tǒng)能夠支持的極限性能。
2. 將TCP的會話關(guān)閉等待時間設(shè)置為0ms,既服務(wù)器端收到請求后立刻進行回應(yīng)關(guān)閉,避免中間設(shè)備的表項資源消耗對測試結(jié)果的干擾。
3. 將HTTP的傳輸數(shù)據(jù)載荷設(shè)置為盡量小(常見為64byte),以加快測試儀表模擬的Client和Server報文交互速率,便于更準確地測試出設(shè)備能力上限。
4. 將每TCPConnection中的HTTPTransaction數(shù)量設(shè)置為1,減小不必要的測試干擾,得出更精確的測試結(jié)果。
5. 需要設(shè)定一定長度的相同新建速率測試持續(xù)時間(如3600s),以保證測試結(jié)果的有效性。
6. 在測試開始前記錄網(wǎng)絡(luò)中主要設(shè)備的CPU/Memory等關(guān)鍵性能指標,測試過程中和結(jié)束后對這些指標進行監(jiān)控,實時了解整個網(wǎng)絡(luò)的運行情況。
L4新建速率測試的結(jié)果將主要體現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)中L4-L7設(shè)備的CPU(根據(jù)不同廠商設(shè)備的具體可以指NP、ASIC和協(xié)處理器等進行TCP新建表項計算的處理單元)運算處理能力。其線性關(guān)系如圖2所示。
圖2 L4新建速率結(jié)果與網(wǎng)絡(luò)設(shè)備CPU關(guān)系示意圖
L4并發(fā)數(shù)測試
L4并發(fā)數(shù)指通過數(shù)據(jù)中心中間網(wǎng)絡(luò)可以同時并發(fā)存在的最大TCPSession數(shù)量,單位為CC(CurrentConnections)。
對于L4并發(fā)數(shù)測試來說,尤其需要關(guān)注其上層協(xié)議的具體應(yīng)用,一個Telnet連接保持1小時與一個HTTP連接保持1小時在協(xié)議處理流程上是有很大不同的,應(yīng)盡量根據(jù)實際網(wǎng)絡(luò)中的業(yè)務(wù)流量設(shè)計測試模型。以下仍以最常見的HTTP協(xié)議進行測試舉例說明。
由于實際的網(wǎng)絡(luò)模型都是在不斷的進行TCP連接建立和關(guān)閉,因此并發(fā)數(shù)測試結(jié)果也要在穩(wěn)定的新建速率下獲得,而不能同時將所有TCP連接一起打入再進行等待。過高的新建速率會導(dǎo)致中間網(wǎng)絡(luò)設(shè)備的處理能力下降,從而影響到并發(fā)數(shù)的測試結(jié)果;而較低的新建速率則會導(dǎo)致超長的會話保持時間,也與實際模型相背。
舉例:期望的網(wǎng)絡(luò)并發(fā)數(shù)為300萬,使用1千CPS的速率進行新建,則需要將測試儀器的會話回應(yīng)等待時間調(diào)整至3,000,000/1,000=3000s才能得到接近期望的測試結(jié)果,而如此長的會話保持時間對網(wǎng)絡(luò)中間設(shè)備來說屬于并不符合實際網(wǎng)絡(luò)業(yè)務(wù)模型的處理方式。
因此正確的測試方法是,先測試出中間網(wǎng)絡(luò)的極限CPS能力,然后取中間設(shè)備穩(wěn)定運行時(如CPU使用率在60%)能夠處理的新建速率,再根據(jù)并發(fā)數(shù)期望測試結(jié)果計算出測試儀的會話回應(yīng)關(guān)閉等待時間,通過調(diào)整此時間測試出實際的設(shè)備并發(fā)數(shù)處理能力。
舉例:先測試出的網(wǎng)絡(luò)新建速率極限值為20萬CPS,CPU穩(wěn)定在60%時的最大新建速率值為15萬CPS,期望的最大并發(fā)數(shù)為300萬,則在測試并發(fā)數(shù)時設(shè)置測試儀器的新建速率為15萬CPS,會話回應(yīng)關(guān)閉等待時間為20s上下調(diào)整,以確認網(wǎng)絡(luò)能夠達到的實際最大并發(fā)數(shù)。
L4并發(fā)數(shù)測試配置需要注意以下幾點:
1. 根據(jù)網(wǎng)絡(luò)L4新建速率測試結(jié)果,設(shè)置穩(wěn)定的新建速率參數(shù)和會話回應(yīng)關(guān)閉等待時間參數(shù)。
2. 可以適當調(diào)整TCP會話關(guān)閉方式,以減少中間網(wǎng)絡(luò)設(shè)備壓力,如采用Reset方式關(guān)閉。
3. 同新建速率測試一樣,設(shè)置HTTP載荷為盡量小值(如64byte),并將每個TCPConnection中的HTTPTransaction數(shù)量設(shè)置為1,減少對測試結(jié)果的干擾。
4. 將整個測試周期時間設(shè)置為一個較長值(如3600s),同步驗證網(wǎng)絡(luò)的穩(wěn)定性。
5. 測試前中后的整個過程中記錄網(wǎng)絡(luò)主要設(shè)備的關(guān)鍵性能指標,進行比較確認。
L4并發(fā)數(shù)測試結(jié)果體現(xiàn)了整網(wǎng)會話保持與表項存儲的能力,與網(wǎng)絡(luò)中L4-L7處理設(shè)備的內(nèi)存大小有直接關(guān)系。這里的內(nèi)存大小依據(jù)各個廠商設(shè)備實現(xiàn)的不同也指DRAM、接口內(nèi)存和CAM等TCP會話表項存儲單元容量。TCP并發(fā)數(shù)與內(nèi)存使用大小的線性關(guān)系如圖3所示。
圖3 L4并發(fā)數(shù)結(jié)果與網(wǎng)絡(luò)設(shè)備Memory使用率關(guān)系示意圖
L7吞吐量測試
L7吞吐量指當前網(wǎng)絡(luò)可以有效傳輸?shù)淖畲驢TTP數(shù)據(jù)量,也被稱為有效吞吐GoodPut,區(qū)別于傳統(tǒng)意義上的測試指標L3吞吐量ThroughPut,結(jié)果單位為BPS(BytePerSecond)。
L7吞吐量測試結(jié)果很大程度上依賴于L4新建速率能力,其間關(guān)系類似于傳統(tǒng)L3吞吐量BPS(BitPerSecond)與網(wǎng)絡(luò)設(shè)備包轉(zhuǎn)發(fā)能力PPS(PacketsPerSecond)之間的關(guān)系。
在測試L7吞吐量的過程中,首先測得網(wǎng)絡(luò)的新建速率,然后將新建速率測試結(jié)果乘以一定比率系數(shù)(例如80%),作為L7吞吐量測試中使用的的穩(wěn)定新建速率參數(shù)始終不變,測試時逐步提高HTTP有效載荷大小,通過觀察出現(xiàn)HTTP連接出現(xiàn)失敗前的有效載荷最大傳輸速率,得到其L7吞吐量測試結(jié)果。
舉例:采用的穩(wěn)定持續(xù)新建速率為20萬CPS,能夠無失敗傳輸?shù)淖畲笥行лd荷值為500Byte,則系統(tǒng)的L7吞吐量為100MBPS(BytePerSecond)。
在L7吞吐量測試中還需要注意的是可以適當提高每TCPConnection中的HTTPTransaction數(shù)量,如采用1:10的比例,這樣能夠進一步提高L7吞吐量測試結(jié)果。但需要注意采用多Transaction方式時,需要將測試儀器上的HTTP協(xié)議類型設(shè)置為HTTP1。1,HTTP1。0協(xié)議不支持此種傳輸加載方式。
L7吞吐量的測試結(jié)果除了受L4新建速率的直接影響外,還會受到網(wǎng)絡(luò)中各設(shè)備的交換架構(gòu)、接口總線等元件單位間處理能力的限制,其測試結(jié)果也直接體現(xiàn)了整個網(wǎng)絡(luò)的應(yīng)用數(shù)據(jù)吞吐轉(zhuǎn)發(fā)能力。
L7響應(yīng)時間測試
L7響應(yīng)時間指從客戶端發(fā)起http請求,到得到正確數(shù)據(jù)響應(yīng)所經(jīng)歷的時間,一般用來衡量中間網(wǎng)絡(luò)的綜合處理能力,單位為毫秒。
L7響應(yīng)時間與L7延遲時間的主要區(qū)別是:延遲時間指客戶端發(fā)出報文到服務(wù)器接收到此報文或反向發(fā)送接收的間隔時間;響應(yīng)時間則指的時一個完整連接的客戶端于服務(wù)器報文來回交互過程時間。在數(shù)據(jù)中心網(wǎng)絡(luò)中,響應(yīng)時間可以更好的表現(xiàn)出整個網(wǎng)絡(luò)對有狀態(tài)的流量處理能力,在HTTP這種需要客戶端與服務(wù)器進行反復(fù)交互的應(yīng)用協(xié)議使用中尤為重要。
響應(yīng)時間的測試方法主要有兩種:一種是基于真實服務(wù)器的業(yè)務(wù)響應(yīng)時間測試,此測試結(jié)果包含了中間網(wǎng)絡(luò)設(shè)備與服務(wù)器兩部分處理延遲時間;另一種是通過測試儀模擬服務(wù)器快速響應(yīng)請求的測試,這種測試方法可以盡量減少服務(wù)器端處理延遲的影響,得到近乎純粹的網(wǎng)絡(luò)處理延遲時間。
L7響應(yīng)時間測試要在一定的新建速率下進行,這樣做也是為了盡量貼近實際網(wǎng)絡(luò)情況。但此測試中的新建速率需要維持在一個較低的水平線上,最好是根據(jù)真實環(huán)境平均值設(shè)定,這是因為新建速率較高時會導(dǎo)致CPU資源占用較高,影響設(shè)備對連接的處理能力。
常用測試工具
使用專用測試工具測試數(shù)據(jù)中心網(wǎng)絡(luò)性能時,可以采用軟件與硬件兩類。
軟件測試工具指需要運行在例如UNIX、Linux和Windows等開放的操作系統(tǒng)及通用的硬件架構(gòu)上,并且只需對現(xiàn)有系統(tǒng)做出微小甚至不做改動就能夠完成測試任務(wù)的軟件。
部分性能測試軟件如下:
HTTP–HTTPLOAD,WebServerStress,LOADRunner,WebBench,WebStone,SPECweb99
MAIL–Loadsim,Medusa(MicrosoftExchange),
DB-BenchmarkFactoryforDatabases,Jetstress,DBstress
IPSAN–IOmeter,Iozone,Bonnie++,dd
硬件測試工具指使用單獨的硬件設(shè)備配合裝載在PC上的控制軟件完成測試工作,其性能要遠優(yōu)于一般的軟件測試工具,但相對的缺點是價格較高和可擴展性較差(功能升級有時需要對硬件產(chǎn)品進行改變,成本很高)。
基于數(shù)據(jù)中心以應(yīng)用為根本的網(wǎng)絡(luò)流量特點,通常采用支持L7應(yīng)用的測試儀器進行測試。目前主流的測試儀器廠商有Spirent、IXIA和BreakingPoint等。
在云計算數(shù)據(jù)中心網(wǎng)絡(luò)性能測試中,如果需要更好的仿真業(yè)務(wù)應(yīng)用,建議采用軟件集群服務(wù)器安裝測試方式;如果希望得到最大的極限能力,建議采用硬件測試儀器來進行測試。
結(jié)束語
在數(shù)據(jù)中心網(wǎng)絡(luò)性能測試中,還有以下一些常用經(jīng)驗可以在測試設(shè)計和執(zhí)行中進行參考:
1. 當測試模擬的流量越接近真實網(wǎng)絡(luò),測試環(huán)境就需要越復(fù)雜。
2. 永遠不能通過測試設(shè)計去完全的模擬真實網(wǎng)絡(luò)環(huán)境。
3. 沒有任何兩個測試環(huán)境是完全相同的,因此所有測試結(jié)果只有參考性,不具標準性。
4. 不同的網(wǎng)絡(luò)環(huán)境體現(xiàn)不同的流量模型,最好的不見得是最適合的。
5. 數(shù)據(jù)中心性能測試結(jié)果永遠向網(wǎng)絡(luò)中性能最差設(shè)備指標看齊。
6. 所有測試之前一定先要進行測試工具的自測試,了解其能力限制。
云計算數(shù)據(jù)中心的廣泛部署是一個持續(xù)漸進的過程,而基于云計算數(shù)據(jù)中心的測試是使其大范圍推廣的關(guān)鍵保障。做好云計算數(shù)據(jù)中心網(wǎng)絡(luò)的測試設(shè)計和執(zhí)行,可以更好的了解當前網(wǎng)絡(luò)設(shè)計的能力范疇,以便更準確的應(yīng)對基于云計算技術(shù)的應(yīng)用業(yè)務(wù)需求,為云應(yīng)用提供更好的通道架構(gòu)服務(wù)。