【導讀】由于ADC產品相對于網絡產品和服務器需求小很多,用戶和集成商在選擇產品時對關鍵指標的理解難免有一些誤區(qū),加之部分主流廠商刻意引導,招標規(guī)范往往有不少非關鍵指標作被作為必須符合項。接下來就這些誤區(qū)和真正的關鍵指標做一些探討。
誤區(qū)1: CPU數量和主頻。 目前大部分廠商采用了類似的通用CPU架構,但還是可能采用不同廠家的CPU。即使是同一個廠家,也可能是不同系列。最關鍵的是CPU數量和主頻并不代表性能,除非是同一個廠家的同一個軟件。同樣,完全相同的硬件配置,不同廠商的架構和系統(tǒng)發(fā)揮出來的性能可能相差數倍,正如完全相同的幾個人在不同的管理環(huán)境下發(fā)揮出來的貢獻差別會很大。并行計算處理不好,由于CPU間信開銷及鎖的問題,CPU數量增加并不意味性能增加。如果1個CPU可以跑出其它產品8個cpu的性能,誰會選擇8個CPU的產品?成本,功耗,體積都會大很多。因此,CPU硬件配置并不代表性能。
誤區(qū)2: 內存。 同樣與系統(tǒng)架構相關。同樣與架構有關,對于CPU獨享內存的架構,每個核即使只配置2G內存,一個8核的產品就需要16G內存,但每個核可訪問的內存資源只有2G。這樣的架構一份數據需要復制多次并保存多份,使用效率很低,最終也會影響到性能。而共享內存架構的產品,每個核可以訪問所有內存資源,數據也只需要保存一份。如果是32位操作系統(tǒng),共享內存架構4G內存的實際效率就超過獨享內存架構的任意配置產品(目前A10之外的產品均為32位操作系統(tǒng),獨享內存架構)。64位操作系統(tǒng)突破4G的限制,實際效率就會更高。因此,內存不代表性能。如果一定要比較,需要比較每個核可訪問的內存資源。
誤區(qū)3:端口數量。ADC產品不同于2/3層交換機,端口數量代表可連接更多設備。ADC產品部署環(huán)境一定會有2/3層交換機,服務器不需要直接連接到ADC產品。只要端口數量大于實際需要的吞吐量并有足夠端口與交換機連接即可。
誤區(qū)4:交換能力。 這個指標也是沿用了交換機的指標。交換機性能與交換矩陣芯片交換能力密切相關,與CPU關系不是很大。而ADC產品則不同,交換矩陣并不是必須部件,大多產品采用通用CPU架構使用PCIe總線擴展接口,這部分已經不是ADC產品的瓶頸所在。ADC性能基本取決于系統(tǒng)整體架構下CPU發(fā)揮出來的效率。而且大部分產品本身已經是服務器的硬件架構,應該沒有人對服務器要求交換能力的指標。
可以看出,誤區(qū)所在均為沿用了服務器或交換機的一些指標,這些硬件配置并不代表ADC產品的真正性能,但一些廠商還是刻意利用這些指標(尤其是CPU和內存)來誤導客戶屏蔽競爭對手。
ADC真正關鍵的性能指標如下:
1. 4/7層吞吐量。由于需要CPU進行復雜的4-7層處理,4/7層吞吐量交2/3層吞吐量要低很多,但這是ADC真正能處理的數據吞吐量。這也是2/3層吞吐量對于ADC產品并不關鍵的原因。這個指標的測試方式通常是發(fā)送盡可能多HTTP GET請求,服務器應答較大HTTP對象(如512Kbytes或1MBytes,會分為若干數據包傳輸),計算無失敗情況下線路上傳輸的數據量。差異在于不同儀表廠商或不同測試可能會不計算2/3層包頭或GET請求部分,由于這部分所占比例極小,影響不是很大。嚴格來說,橫向比較時應該確定所取HTTP對象大小及是否計算2/3層包頭部分。
2. 4層每秒新建連接速率(L4 CPS)。 衡量ADC產品每秒鐘可以處理多少個TCP新建連接。通常測試方法為發(fā)送盡可能多的HTTP GET請求,服務器應答較小HTTP對象(如1Bytes,128Bytes,1KBytes), ADC產品在中間只根據4層信息進行復雜均衡。每個連接需要完整的3次握手建立過程,GET請求,和TCP關閉連接過程。這個指標對于ADC產品應付突發(fā)大量連接非常重要。好比一個地鐵入口的通過率一樣,如果入口太小,客流突然增加時,如果客人無法進入,業(yè)務自然會受到影響。比較該指標時需要注意所取HTTP對象大小。
3. 7層每秒新建連接速率(L7 CPS)。與4層新建連接速率類似,只是ADC產品在中間需要根據應用層信息進行服務器選擇(通常測試使用url交換),而且每個TCP連接上只能傳輸1個HTTP請求。使用7層處理對CPU效率要求更高。如同進入地鐵時需要核查客人更多信息和安檢一樣,其通過率比正常通過率會有不同程度降低。A10產品通常可以做到4層新建連接速率的70-80%,而其它很多廠商只能做到30-40%。比較該指標時同樣要注意HTTP對象大小和每個TCP連接傳輸的請求數。
4. 7層每秒交易速率(L7 RPS)。有些廠商使用L7 RPS作為L7 CPS來混淆誤導客戶,RPS測試會定義每個TCP連接可以傳輸多少個HTTP請求,通常會有10個請求/TCP連接,無限制請求連接/TCP連接幾種測試數據。使用1個請求的L7 RPS值就是L7 CPS。差別在于每個連接傳送多個請求時的L7 RPS測試中,ADC可以省去大量TCP連接建立和關閉過程。比較該指標時同樣要注意HTTP對象大小和每個TCP連接傳輸的請求數。
5. 并發(fā)會話數量。 如果新建連接速率代表了一個地鐵入口通過率,并發(fā)會話則代表了該地鐵線路上在車上的所有人數。如果內部承運能力不夠高,就會造成乘客擠壓過載最后癱瘓。并發(fā)會話測試并不是簡單的在內存中保存這些條目,實際測試中,必須在每個連接上定時傳送數據驗證設備可以準確查找已有會話并轉發(fā)數據。測試中還可能會細分4層并發(fā)會話數量和7層并發(fā)會話數量,區(qū)別在于ADC基于不同信息建立會話和每個連接占用的會話條目不同。由于并發(fā)會話與內存關系很大,32位系統(tǒng)的ADC由于4G內存限制都不可能做得很大,而64位系統(tǒng)的ADC就不會受到這個限制。
6. 防DDoS攻擊能力(syn/sec)。ADC產品的并發(fā)會話能力和新建連接速率遠遠大于防火墻類產品,因此在ADC外部署防火墻會成為瓶頸。這就要求ADC本身有足夠強大的防攻擊能力。目前大部分ADC產品均采用了Syn-cookie方式來防御DDoS攻擊,實際性能取決于各自的系統(tǒng)架構和處理算法。
值得一提的是,F(xiàn)5的7層新建速率與4層新建速率相比下降非常大,因此會有使用與其他廠商不同的一些數據來作為L7 CPS應答的情況。F5 提供3個L7 CPS/RPS指標.
L7 Connection per Sec(1-1), 客戶側連接1 request/connection,服務器側連接1 request/connection。 通用L7 CPS定義。
L7 Requests per Sec (1-inf),客戶側連接1 request/connection,服務器側連接unlimited request/connection。 用戶通??吹降腖7 CPS數據。
L7 Requests per Sec (inf-inf),客戶側連接unlimited request/connection,服務器側連接unlimited request/connection。
F5公開的測試報告明確描述其所有7層測試均啟用連接復用功能,因此測試報告中看到的都是“L7 Requests per Sec (1-inf)”。比較L7 CPS時時應該注意使用其CPS(1-1)指標。
其他SSL指標、DNS QPS指標、HTTP壓縮指標對于使用該類應用的用戶很重要,但不屬于通用關鍵指標,就暫不逐一解釋了。
推薦閱讀: