交換機是數(shù)據(jù)中心不可缺少的網(wǎng)絡(luò)設(shè)備,在數(shù)據(jù)中心里發(fā)揮著重要作用。在平時使用和采購時,大多數(shù)都關(guān)注交換機的背板帶寬、端口密度、單端口速度、協(xié)議特性等方面的性能指標(biāo),很少有人去關(guān)注緩存指標(biāo),這是一個常常被人所忽略的指標(biāo)。
其實,緩存是數(shù)據(jù)中心交換機的重要性能參數(shù),是衡量一款交換機設(shè)備性能高低的重要指標(biāo)。交換機的緩存和通常的緩存概念不同,通常緩存指的是當(dāng)某一硬件要讀取數(shù)據(jù)時,會首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話再從內(nèi)存中找,顯然緩存中的數(shù)據(jù)查找速度比內(nèi)存中要快得多,這是一個處于CPU內(nèi)部的一塊內(nèi)存地址空間。
而在交換機上,緩存就是數(shù)據(jù)交換的緩沖區(qū),有時又叫做包緩沖區(qū)大小,是一種隊列結(jié)構(gòu),被交換機用來協(xié)調(diào)不同網(wǎng)絡(luò)設(shè)備之間的速度匹配問題。突發(fā)數(shù)據(jù)可以存儲在緩沖區(qū)內(nèi),直到被慢速設(shè)備處理為止。
交換機有三種轉(zhuǎn)發(fā)模式:直通轉(zhuǎn)發(fā)、存儲轉(zhuǎn)發(fā)和無碎片轉(zhuǎn)發(fā)
,用的最廣泛的是
存儲轉(zhuǎn)發(fā)模式。
其實不管是哪種轉(zhuǎn)發(fā)模式,都要用到緩存,只不過直通轉(zhuǎn)發(fā)只解析報文的前幾個字節(jié)就進(jìn)行轉(zhuǎn)發(fā),存到緩存里的數(shù)據(jù)量小,轉(zhuǎn)發(fā)速度快,但因沒有對整體數(shù)據(jù)做校驗,容易轉(zhuǎn)發(fā)錯誤報文。大部分交換機的片上緩存都不大,一般都是幾MB到幾十MB,雖然單端口帶寬在不到十年的時間里從1G發(fā)展到了100G,但緩存并沒有很大提升,如果一個100G端口出現(xiàn)突發(fā)流量,十幾MB就會出現(xiàn)丟包,顯然在實際應(yīng)用中會有限制,除非明確應(yīng)用流量上不要有突發(fā)流量。
那么有人會有疑問,既然緩存這么重要,那為何不做的大一些?
其實以現(xiàn)有的芯片集成技術(shù)應(yīng)該不難實現(xiàn)。的確,緩存理論上可以通過芯片工藝設(shè)計放大,但是過大的緩存會影響正常通信狀態(tài)下數(shù)據(jù)包的轉(zhuǎn)發(fā)速度,因為過大的緩沖空間需要相對多一點的尋址時間,并增加設(shè)備的成本,在一些對延遲要求比較高的應(yīng)用場景中,緩存過大反而會起反作用
,所以不能簡單地去擴大緩存,要在緩存和延遲兩個方面做取舍,“魚和熊掌不可得兼”。
當(dāng)然,隨著技術(shù)的進(jìn)步,在盡量不增加延遲的情況下,也可以不斷提升交換機的緩存能力。受制于時鐘、總線帶寬的能力,緩存性能難以大幅提升,考慮到功耗、成本的平衡,緩存容量也不會大幅增加。 有的交換機還在交換芯片外部掛了一個DRAM緩存,用來提升交換機的緩存能力,這樣延遲可能會更大,但緩存可以做得很大,達(dá)到1G以上。
緩存十分重要,但我們究竟需要多大的緩存,卻沒有正確答案。巨大的緩存意味著網(wǎng)絡(luò)不會丟棄任何流量,同時也意味著網(wǎng)絡(luò)延遲的增加,具體要根據(jù)數(shù)據(jù)中心的業(yè)務(wù)來選擇。
比如在搜索業(yè)務(wù)中,一次搜索要在海量數(shù)據(jù)庫里尋找結(jié)果,容易產(chǎn)生網(wǎng)絡(luò)突發(fā)流量,甚至造成網(wǎng)絡(luò)擁塞,在這樣的網(wǎng)絡(luò)業(yè)務(wù)中就需要部署緩存大的交換機設(shè)備;在金融領(lǐng)域,尤其是股票證券交易網(wǎng)絡(luò)中,差一個納秒都可以帶來巨大收益或者損失,這樣的領(lǐng)域?qū)W(wǎng)絡(luò)延遲要求非常高,不允許出現(xiàn)擁塞,也就不需要多少緩存,有的金融數(shù)據(jù)中心還要求使用低延遲交換機,轉(zhuǎn)發(fā)延遲控制在納秒級。
緩存通常都是因為網(wǎng)絡(luò)接口速率不同造成的,流量突然爆發(fā)或者多對一的流量傳輸。最常見的問題是多對一的流量突然變化。例如,某個應(yīng)用程序搭建在多個服務(wù)器集群結(jié)點上。如果其中某個結(jié)點同時請求來自其他所有結(jié)點的數(shù)據(jù),那么所有答復(fù)應(yīng)該在同一時間到達(dá)。這種情況發(fā)生時,所有網(wǎng)絡(luò)流量洪水會涌向請求者的交換機端口。如果交換機沒有足夠的出口緩沖區(qū),那么它可能會拋棄一些流量,或者增加應(yīng)用程序延遲。足夠的網(wǎng)絡(luò)緩沖區(qū)可以防止因為低級別協(xié)議造成的丟包或網(wǎng)絡(luò)延遲。 緩存對交換機來說是一個整體的概念,整個交換芯片共享緩存,每個端口分多少都是可以調(diào)整的,交換機上對這些緩存是有管理的,于是就出現(xiàn)了兩種模式:
QOS模式和FC模式。
硬件上對每個報文都要存儲后,處理完再轉(zhuǎn)發(fā),但存儲空間都是有限的,因此當(dāng)緩存不足時,就會出現(xiàn)丟包。
QOS模式
下,發(fā)生擁塞時不會發(fā)出流控幀,但可以對端口上不同優(yōu)先級的流量進(jìn)行調(diào)度,一定要丟包,優(yōu)先丟掉優(yōu)先級低的包,通過設(shè)置相關(guān)配置,可以做到選擇性丟包。而在FC模式下,發(fā)生擁塞時會發(fā)出流控幀(需要手工配置,默認(rèn)一般設(shè)備都不開啟,若開啟對端設(shè)備擁塞也會發(fā)流控幀,設(shè)備要響應(yīng)處理流控幀,這將極大消耗設(shè)備端口的緩存)。
QOS模式
所有緩存被所有端口共享,F(xiàn)C模式緩存被均勻固定的分配給每個端口,因此QOS模式單個端口可能會獲得更多的存儲能力,減少了丟包,但帶來的影響是可影響其它端口低優(yōu)先級報文的傳輸。
現(xiàn)在的交換機基本采用的是兩種模式的結(jié)合
,即為每個端口固定分配一些緩存,保證一定的轉(zhuǎn)發(fā)帶寬,同時再留一部分緩存作為公共部分,當(dāng)有端口固定分配的部分不夠用時,就可以使用公共部分,為防止一個端口擁塞將所有共享緩存占光,每個端口還可以設(shè)定一個最大允許占用的緩存,以此保證多端口擁塞時,公共緩存部分依然有剩余,所以緩存容量雖然不大,但是管理上是比較靈活的。不過,由于緩存管理是交換機非常底層的東西,調(diào)整不大對設(shè)備的轉(zhuǎn)發(fā)影響很大,所以這部分調(diào)整一般都是在設(shè)備出廠之前調(diào)好,默認(rèn)是最為通用的方式,有特殊應(yīng)用的場景,再根據(jù)實際情況由專業(yè)技術(shù)人員來調(diào)整。
審核編輯 黃宇
-
存儲
+關(guān)注
關(guān)注
13文章
4314瀏覽量
85846 -
交換機
+關(guān)注
關(guān)注
21文章
2640瀏覽量
99640 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4778瀏覽量
72126
發(fā)布評論請先 登錄
相關(guān)推薦
評論