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