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