天天看點

雲計算資料中心網絡性能測試

  測試設計

  資料中心網絡性能測試手段很多,業務仿真測試是最能展現實際應用情 況的測試方法。業務仿真測試往往需要利用大量伺服器和儲存設備,通過部署仿真應用環境來測試網絡針對此類型應用的轉發性能。但此方法受成本和測試複雜度影 響,一般隻在超大型且應用較為單一的資料中心測試時使用,如百度/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. 所有測試之前一定先要進行測試工具的自測試,了解其能力限制。

  雲計算資料中心的廣泛部署是一個持續漸進的過程,而基于雲計算資料中心的測試是使其大範圍推廣的關鍵保障。做好雲計算資料中心網絡的測試設計和 執行,可以更好的了解目前網絡設計的能力範疇,以便更準确的應對基于雲計算技術的應用業務需求,為雲應用提供更好的通道架構服務。

本文出自seven的測試人生公衆号最新内容請見作者的github頁:http://qaseven.github.io/

繼續閱讀