是否提高服務質量(QoS)就可以處理擁塞鏈路?還是必須提高網絡帶寬才可以解決鏈路擁塞問題呢……
每個網絡都有一些鏈路定期會超載。我們通常可以使用網絡管理系統的報告或使用命令行界面(CLI)收集接口信息的腳本來鑒定這些鏈路,查看輸出丟包率高的鏈路。注意:輸入丟包是罕見的,通常意味著設備中的分組處理路徑以某種方式受到影響。任何輸入丟包都應該進行檢查。還要注意的是簡單網絡管理協議也使用術語丟包(discards),于是命令行界面(CLI)經常使用屬于丟包(drops).CLI的輸出一般是這樣的語句:
Gigabit Ethernet 1/10 is up, line protocol is up (connected)
Hardware is C 6k 1000Mb 802.3, address is 0008.6a2f.18a5
Input queue: 0/2000/0/0 (size/max/drops/flushes);
Total output drops: 116123
5 minute input rate 62675000 bits/sec, 6824 packets/sec
5 minute output rate 14618000 bits/sec, 4944 packets/sec
相對于接口輸出包的總數,計算丟包的百分比。任何接口呈現的丟包率大于0.0001%都應該注意,因為這個丟包率表示使用TCP協議會受到影響。另一種方法是,跟蹤丟包數超過某個閾值的接口,這個閾值可以是1萬個丟包數/天。
一旦擁塞接口確定,那么就可以通過提高服務質量(QoS)或提高接口速度來解決問題。首先我們來看一下QoS解決方案,然后再看看有哪些因素決定了鏈路擁塞可以得到解決,以及鏈路速度是否必須升級。
QoS及其在解決鏈路擁塞問題中的作用
QoS可以實現多種功能:
優先級:相對于不太重要的網絡流量,先轉發更重要的網絡流量。使用優先級來處理像語音或視頻這樣的時間敏感數據包,推遲時間不敏感的數據包發送。小延遲是幾毫秒量級的,并應該足夠短,以防止分組丟失或由上層協議重傳。
圖1. 優先處理大數據語音包
管制:通過丟棄超過一定水平大小的數據包,限制特定類型網絡流量的大小。使用管制來防止指定類型的流量霸占網絡。
圖2. 管制超額流量
整形:緩存短脈沖,當有足夠可用資源時,這些緩沖的分組再傳輸,使接口上真實輸出的流量變得平滑。使用整形來管理像電子郵件或文件傳輸這樣可以容忍短暫延遲的流量,而不影響整體的吞吐量。
圖3. 整形緩存過大的流量,直到帶寬可用
如果鏈路擁塞不是很嚴重,或者流量類型可以被監管(丟棄)的情況下,QoS是非常有效的。在一個咨詢案例中,我們的客戶有一個擁塞T3鏈路,白天一直處于擁塞狀態。我們確定該鏈路一半的流量來自視頻下載和音樂流媒體服務。配置QoS,讓業務流量優先于多媒體數據是非常簡單的,同時,管制視頻和語音流量到一個合適的容量。我們還可以為業務流量增大緩沖,因為它發出許多小數據包,導致超過了高優先級隊列的緩沖池。
限制任意緩沖在一個最小數量來讓應用程序運行更穩定是一個很好的方法。過多的緩沖會形成一個臃腫緩沖區,導致TCP窗口算法變得混亂,從而吞吐量會比正常低很多。
理想的情況下,企業應該部署QoS.如果覺得比較麻煩,也可以使用在具有嚴重問題的鏈路上,如上述T3鏈路狀況。
什么時候必須進行鏈路升級?
有時候,鏈路會飽和,那么QoS就不是一個好的處理方法了。大多數網絡流量都是重要的,已經不能使用優先級來刪除不重要的流量。在高利用率接口上整形也不再生效了,因為沒有延遲分組可以發送的時間間隙存在。
下面舉一個需要增加帶寬來減少鏈路擁塞的例子。兩個站點通過一條1G bps,2-ms往返時間的鏈路連接。這兩個網站都包含數據中心和龐大的用戶群體。通過該鏈路,大量的文件進行分享,而且文件通常都非常大。當擁塞發生時,沒有流量可以被放置在低優先級隊列,沒有流量可以被管制(丟棄)。客戶看到鏈路存在高丟包的情況,所以增加緩沖數量來整形流量。不幸的是,如此大的緩沖數量導致14ms延遲。結果?臃腫緩沖區降低了吞吐量,擁塞仍舊存在。
鏈路擁塞會造成另一種現象:在客戶端和服務器端,出現非常高數字的TCP重發,執行命令netstat –s –p tcp(適用于Windows, Unix和Linux操作系統)可以查看。會出現大量的TCP重傳,可能1萬到5萬次/天。正確的TCP操作也可能導致少量重發,因為它發現該路徑變得擁塞。
幸運的是,該客戶正計劃升級鏈路。除此之外,還有其他的方法可以使現有的帶寬更有效,如減少遠程安裝的磁盤驅動器數量,或在網絡使用率最小的夜間進行數據復制。
當一個鏈路擁塞時,QoS可以處理短脈沖串,還可以識別并丟棄低優先級網絡流量。然而,當大部分流量是相同優先級,而鏈路又嚴重擁塞時,唯一的辦法就是增加帶寬。意識到增加帶寬的時間點是非常重要的,最好是在還有時間來訂購鏈路升級時就發現這一點。