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