輸出排程確保重要流量在嚴重超訂用時不會被丟棄。本文討論執行Catalyst OS(CatOS)系統軟體的Cisco Catalyst 6500/6000系列交換器上的輸出排程中所涉及的所有技巧和演演算法。本文還提供了Catalyst 6500/6000交換機的排隊功能以及如何配置輸出排程的不同引數的簡要概述。
註:如果在Catalyst 6500/6000上運行Cisco IOS®軟體,請參閱運行Cisco IOS系統軟體的Catalyst 6500/6000系列交換機上的QoS輸出排程,瞭解詳細資訊。
本文件沒有特定需求。
本檔案中的範例是根據搭載Supervisor引擎1A和原則功能卡(PFC)的Catalyst 6000建立的。 但是這些範例對搭載PFC2的Supervisor引擎2或搭載PFC3的Supervisor引擎720同樣有效。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
輸出丟棄是由介面擁塞引起的。此問題的一個常見原因可能是來自高頻寬鏈路且正在切換到低頻寬鏈路的流量,或者來自多個入站鏈路且正在切換到單個出站鏈路的流量。
例如,如果大量突發流量進入千兆介面並切換到100 Mbps介面,則可能導致在100 Mbps介面上輸出丟棄增加。這是因為由於傳入和傳出頻寬之間的速度不匹配,該介面上的輸出隊列被超額流量壓倒。傳出介面的流量速率無法接受所有應傳出的封包。
解決此問題的最終解決方案是提高線路速度。但是,如果您不想增加線路速度,則有方法可以防止、減少或控制輸出下降。僅當輸出丟棄是短時間突發資料造成的結果時,才能防止輸出丟棄。如果輸出丟棄是由恆定高速流引起的,則無法阻止丟棄。但是,您可以控制它們。
尾部丟棄是一種基本的擁塞迴避機制。當隊列在擁塞期間開始填滿時,尾部丟棄對所有流量進行同等處理,不會區分服務類別(CoS)。當輸出隊列已滿而尾部丟棄生效時,資料包將被丟棄,直到擁塞消除且隊列不再已滿。尾部丟棄是最基本的擁塞迴避型別,不考慮任何QoS引數。
Catalyst 6000已實施高級版本的尾部丟棄擁塞規避,當達到一定百分比的緩衝區填充時,會丟棄具有特定CoS的所有資料包。使用加權尾部丟棄,可以定義一組閾值並將CoS與每個閾值相關聯。在本節的示例中,有四個可能的閾值。每個閾值的定義如下:
當緩衝區的50%已填充時,達到閾值1。CoS 0和1分配給此閾值。
當緩衝區的60%已填充時,達到閾值2。CoS 2和3被分配給此閾值。
當緩衝區的80%已填充時,達到閾值3。CoS 4和5被分配給此閾值。
100%的緩衝區已滿時,達到閾值4。CoS 6和7被分配給此閾值。
在圖1的圖表中,如果緩衝區已填滿50%,則CoS為0或1的所有封包都會遭捨棄。如果CoS為0、1、2或3的緩衝區已滿60%,則會丟棄所有資料包。CoS為6或7的封包會在緩衝區完全填充後遭捨棄。
圖1
注意:一旦緩衝區填充下降到某個閾值以下,具有相關CoS的資料包就不再被丟棄。
加權隨機早期偵測(WRED)是一種擁塞迴避機制,當緩衝區達到定義的填充閾值時,會隨機捨棄具有特定IP優先順序的封包。WRED是以下兩個功能的組合:
尾部丟棄
隨機早期偵測(RED)
RED不是優先順序感知或CoS感知。當緩衝區的閾值填充時,RED使用單個閾值之一。RED開始隨機丟棄資料包(但並非所有資料包,如尾部丟棄),直到達到最大(最大)閾值。達到最大閾值後,所有封包都會遭捨棄。資料包被丟棄的概率隨緩衝區填充量超過閾值的增加而線性增加。圖2中的圖顯示了資料包丟棄概率:
圖2 — 資料包丟棄概率
註:此圖中的標籤概率在RED中可調,這意味著線性丟棄概率的斜率是可調的。
RED和WRED對於基於TCP的流量是非常有用的擁塞迴避機制。對於其他型別的流量,RED不是非常有效。這是因為RED利用TCP用來管理擁塞的視窗機制。RED可避免多個TCP作業階段通過同一個路由器連線埠時,路由器上會發生典型的擁塞。這種機制稱為全域性網路同步。圖3中的圖表顯示了RED對負載的平滑效果:
圖3 — 用於避免擁塞的紅色
如需更多有關RED如何減輕擁塞並順利通過路由器的流量的資訊,請參閱擁塞迴避概觀檔案的路由器如何與TCP互動一節。
WRED與RED類似,二者都定義一些最小(最小)閾值,當達到這些最小閾值時,資料包會被隨機丟棄。WRED還定義某些最大閾值,當達到這些最大閾值時,所有資料包都會被丟棄。WRED也是CoS感知,這意味著將一個或多個的CoS值新增到每個最小閾值/最大閾值對。當超出最小閾值時,資料包隨分配的CoS隨機丟棄。請考慮以下示例,在隊列中有兩個閾值:
CoS 0和1分配給最小閾值1和最大閾值1。最小閾值1設定為緩衝區填充的50%,最大閾值1設定為80%。
CoS 2和3被分配給最小閾值2和最大閾值2。最小閾值2被設定為緩衝器填充的70%,最大閾值2被設定為100%。
一旦緩衝區超過最小閾值1(50%),就會開始隨機丟棄CoS 0和1的資料包。隨著緩衝區利用率的增加,丟棄更多資料包。如果達到最小閾值2(70%),則具有CoS 2和3的資料包開始被隨機丟棄。
注意:在此階段,CoS 0和1資料包的丟棄概率遠高於CoS 2或CoS 3資料包的丟棄概率。
每當達到最大閾值2時,CoS 0和1的資料包都會被丟棄,而CoS 2和3的資料包會繼續被隨機丟棄。最後,當達到100%(最大閾值2)時,會丟棄CoS 2和3的所有資料包。
圖4 - WRED具有兩組最小閾值和最大閾值(兩種服務)圖5 - WRED帶有兩組服務,但兩個最小閾值均等於0
WRED早期的CatOS實現只設定了最大閾值,而最小閾值則硬編碼為0%。圖5中圖表的底部顯示了所產生的行為。
注意:資料包的丟棄概率始終為非null,因為該概率始終高於最小閾值。此行為已在軟體版本6.2及更高版本中更正。
加權輪詢(WRR)是Catalyst 6000上的另一種輸出排程機制。WRR在兩個或多個隊列之間工作。WRR的隊列以循環方式清空,您可以為每個隊列配置權重。預設情況下,Catalyst 6000上的埠有兩個WRR隊列。預設值為:
為高優先順序WRR隊列提供70%的時間
為低優先順序WRR隊列提供30%的時間
圖6中的圖表顯示了一個WRR,該WRR具有三個以WRR方式服務的隊列。高優先順序隊列(紅色資料包)傳送的資料包多於另外兩個隊列:
圖6 — 輸出排程:WRR
注意:大多數6500線卡確實為每個頻寬實施WRR。這種按頻寬實現的WRR意味著每當排程程式允許隊列傳輸資料包時,都允許傳輸一定數量的位元組。此位元組數可以表示多個資料包。例如,如果一次傳送5120位元組,則可傳送三個1518位元組封包,總共有4554位元組。超出的位元組會丟失(5120 - 4554 = 566位元組)。 因此,使用某些極端權重(例如隊列1為1%,隊列2為99%)時,可能無法達到確切的配置權重。無法達到準確權重通常是較大資料包的情況。
某些新一代線卡(例如6548-RJ-45)通過實施差額加權循環配置來克服這一限制。DWRR從隊列中傳輸,但不會使低優先順序隊列缺血。DWRR會跟蹤正在傳輸的低優先順序隊列,並在下一輪中進行補償。
Catalyst 6000中的另一種佇列型別(嚴格的優先順序佇列)一律首先清空。只要嚴格優先順序隊列中有封包,就會傳送封包。
只有在清空嚴格優先順序隊列之後,才會檢查WRR或WRED隊列。從WRR隊列或WRED隊列傳輸每個資料包後,會檢查嚴格優先順序隊列,並在必要時清空。
注意:隊列型別類似於1p2q1t、1p3q8t和1p7q8t的所有線卡均使用DWRR。其它線卡使用標準WRR。
如果您不確定埠的排隊功能,可以發出show port capabilities命令。以下是WS-X6408-GBIC線卡上命令的輸出:
Model WS-X6408-GBIC Port 4/1 Type No GBIC Speed 1000 Duplex full Trunk encap type 802.1Q,ISL Trunk mode on,off,desirable,auto,nonegotiate Channe yes Broadcast suppression percentage(0-100) Flow control receive-(off,on,desired),send-(off,on,desired) Security yes MembershIP static,dynamic Fast start yes QOS scheduling rx-(1q4t),tx-(2q2t) CoS rewrite yes ToS rewrite DSCP UDLD yes SPAN source,destination COPS port group none
此埠具有稱為2q2t的隊列輸出型別。
Catalyst 6500/6000交換器上提供多種型別的佇列。隨著新線卡的發佈,本節中的表格可能會變得不完整。新的線卡可以引入新的排隊組合。有關Catalyst 6500/6000交換器模組可用的所有佇列的目前說明,請參閱Catalyst 6500系列軟體檔案的CatOS版本的設定QoS一節。
註:Cisco Communication Media Module(CMM)不支援所有QoS功能。檢視特定軟體版本的版本說明,以確定支援的功能。
下表說明連線埠QoS架構的表示法:
Tx1/Rx2 ide | 隊列表示法 | 隊列數 | 優先順序隊列 | WRR隊列數 | WRR隊列的閾值數量和型別 |
---|---|---|---|---|---|
Tx | 2q2t | 2 | — | 2 | 2個可配置的尾部丟棄 |
Tx | 1p2q2t | 3 | 1 | 2 | 2個可配置的WRED |
Tx | 1p3q1t | 4 | 1 | 3 | 1個可配置的WRED |
Tx | 1p2q1t | 3 | 1 | 2 | 1個可配置的WRED |
Rx | 1q4t | 1 | — | 1 | 4個可配置的尾部丟棄 |
Rx | 1p1q4t | 2 | 1 | 1 | 4個可配置的尾部丟棄 |
Rx | 1p1q0t | 2 | 1 | 1 | 不可配置 |
Rx | 1p1q8t | 2 | 1 | 1 | 8個可配置的WRED |
1 Tx =傳輸。
2 Rx =接收。
下表列出介面或連線埠的Rx和Tx端的所有模組和佇列型別:
模組 | Rx隊列 | Tx隊列 |
---|---|---|
WS-X6K-S2-PFC2 | 1p1q4t | 1p2q2t |
WS-X6K-SUP1A-2GE | 1p1q4t | 1p2q2t |
WS-X6K-SUP1-2GE | 1q4t | 2q2t |
X6501-10GEX4 | 1p1q8t | 1p2q1t |
X6502-10GE | 1p1q8t | 1p2q1t |
X6516-GBIC | 1p1q4t | 1p2q2t |
X6516-GE-TX | 1p1q4t | 1p2q2t |
X6416-GBIC | 1p1q4t | 1p2q2t |
WS-X6416-GE-MT | 1p1q4t | 1p2q2t |
X6316-GE-TX | 1p1q4t | 1p2q2t |
X6408A-GBIC | 1p1q4t | 1p2q2t |
X6408-GBIC | 1q4t | 2q2t |
X6524-100FX-MM | 1p1q0t | 1p3q1t |
X6324-100FX-SM | 1q4t | 2q2t |
X6324-100FX-MM | 1q4t | 2q2t |
WS-X6224-100FX-MT | 1q4t | 2q2t |
X6548-RJ-21 | 1p1q0t | 1p3q1t |
X6548-RJ-45 | 1p1q0t | 1p3q1t |
X6348-RJ-21 | 1q4t | 2q2t |
X6348-RJ21V | 1q4t | 2q2t |
X6348-RJ-45 | 1q4t | 2q2t |
X6348-RJ-45V | 1q4t | 2q2t |
X6148-RJ-45V | 1q4t | 2q2t |
X6148-RJ21V | 1q4t | 2q2t |
X6248-RJ-45 | 1q4t | 2q2t |
WS-X6248A-TEL | 1q4t | 2q2t |
X6248-TEL | 1q4t | 2q2t |
X6024-10FL-MT | 1q4t | 2q2t |
Catalyst 6500/6000上的三個欄位用於設定QoS:
IP優先順序 — IP報頭中「服務型別」欄位的前三個位
區別服務代碼點(DSCP)- IP報頭中ToS欄位的前六位
CoS — 在第2層(L2)級別使用的三個位
這三個位是交換器間連結(ISL)標頭的一部分,或是位於IEEE 802.1Q(dot1q)標籤內。未標籤的乙太網路封包中沒有CoS。
從要傳輸的資料匯流排傳送幀時,資料包的CoS是唯一要考慮的引數。然後,封包會經過排程器,排程器會選擇封包所放置的佇列。因此,請記住,本文檔討論的輸出排程和所有機制都只有CoS感知。
採用多層次交換功能卡(MSFC)的Catalyst 6500/6000使用內部DSCP對封包進行分類。當在PFC層級做出轉送決定時,設定已啟用QoS的Catalyst 6500/6000會指派一個DSCP值。此DSCP分配給包括非IP資料包的任何資料包,並對映到CoS以啟用輸出排程。您可以在Catalyst 6500/6000上配置從DSCP到CoS值的對映。如果保留預設值,則可以從DSCP匯出CoS。公式為:
DSCP_value / 8
此外,如果資料包是ISL或dot1q(非本地VLAN)標籤的IP資料包,則DSCP值將對映到傳出資料包的CoS。DSCP值也寫入IP報頭的ToS欄位中。
圖7中的圖顯示1p2q2t隊列。使用WRR排程程式清空WRR隊列。還有一個仲裁器,它檢查來自WRR隊列的每個資料包,以確定嚴格優先順序隊列中是否有內容。
圖7
ToS欄位在IP報頭和802.1p/ISL CoS欄位中重新寫入。
排程隊列和閾值是基於CoS通過可配置的對映選擇的。
每個隊列具有可配置的大小和閾值,某些隊列具有WRED。
出隊在兩個隊列之間使用WRR。
傳出封裝可以是dot1q、ISL或none。
本節提供Catalyst 6500/6000上的預設QoS設定的範例輸出,以及有關這些值的含義和如何調整這些值的資訊。
發出以下命令時,QoS預設會停用:
set qos disable
此清單中的命令顯示2q2t埠中每個CoS的預設分配。隊列1將CoS 0和1分配給其第一個閾值,並將CoS 2和3分配給其第二個閾值。隊列2將CoS 4和5分配給其第一個閾值,並將CoS 6和7分配給其第二個閾值:
set qos map 2q2t tx 1 1 cos 0 set qos map 2q2t tx 1 1 cos 1 set qos map 2q2t tx 1 2 cos 2 set qos map 2q2t tx 1 2 cos 3 set qos map 2q2t tx 2 1 cos 4 set qos map 2q2t tx 2 1 cos 5 set qos map 2q2t tx 2 2 cos 6 set qos map 2q2t tx 2 2 cos 7
這些命令預設情況下在每個隊列的2q2t埠上顯示閾值級別:
set qos drop-threshold 2q2t tx queue 1 80 100 set qos drop-threshold 2q2t tx queue 2 80 100
您可以為每個WRR隊列分配預設權重。發出此命令,為隊列1和隊列2分配預設權重:
注意:低優先順序隊列佔用5/260%的時間,高優先順序隊列佔用255/260%的時間。
set qos wrr 2q2t 5 255
總緩衝區可用性將在兩個隊列中分隔。低優先順序隊列正確分配給80%的可用緩衝區,因為此隊列最有可能緩衝資料包並等待一段時間。發出以下命令以定義可用性:
set qos txq-ratio 2q2t 80 20
您可以在此配置中檢視1p2q2t埠的類似設定:
set qos map 1p2q2t tx 1 1 cos 0 set qos map 1p2q2t tx 1 1 cos 1 set qos map 1p2q2t tx 1 2 cos 2 set qos map 1p2q2t tx 1 2 cos 3 set qos map 1p2q2t tx 2 1 cos 4 set qos map 1p2q2t tx 3 1 cos 5 set qos map 1p2q2t tx 2 1 cos 6 set qos map 1p2q2t tx 2 2 cos 7 set qos wrr 1p2q2t 5 255 set qos txq-ratio 1p2q2t 70 15 15 set qos wred 1p2q2t tx queue 1 80 100 set qos wred 1p2q2t tx queue 2 80 100
注意:預設情況下,CoS 5(語音流量)分配給嚴格的優先順序隊列。
第一個配置步驟是啟用QoS。請記住,預設情況下禁用QoS。禁用QoS時,CoS對映不相關。有一個隊列被用作FIFO,所有資料包都會被丟棄。
bratan> (enable) set qos enable QoS is enabled bratan> (enable) show qos status QoS is enabled on this switch
需要將CoS值分配給所有隊列型別的隊列或閾值。為2q2t型別的埠定義的對映未應用於任何1p2q2t埠。此外,為2q2t建立的對映將應用於具有2q2t排隊機制的所有埠。發出以下命令:
set qos map queue_type tx Q_number threshold_number cos value
注意:隊列始終進行編號,以儘可能低的優先順序隊列開頭,以可用的嚴格優先順序隊列結尾。以下是範例:
隊列1是低優先順序WRR隊列
隊列2是高優先順序WRR隊列
隊列3是嚴格的優先順序隊列
您必須對所有型別的隊列重複此操作。否則,您將保留預設的CoS分配。以下是1p2q2t的示例:
set qos map 1p2q2t tx 1 1 cos 0 !--- This is the low-priority WRR queue threshold 1, CoS 0 and 1. set qos map 1p2q2t tx 1 1 cos 1 and 1 set qos map 1p2q2t tx 1 2 cos 2 !--- This is the low-priority WRR queue threshold 2, CoS 2 and 3. set qos map 1p2q2t tx 1 2 cos 3 and 3 set qos map 1p2q2t tx 2 1 cos 4 !--- This is the high-priority WRR queue threshold 1, CoS 4. set qos map 1p2q2t tx 3 1 cos 5 !--- This is the strict priority queue, CoS 5. set qos map 1p2q2t tx 2 1 cos 6 !--- This is the high-priority WRR queue threshold 2, CoS 6. set qos map 1p2q2t tx 2 2 cos 7 and 7
tamer (enable) set qos map 1p2q2t tx 1 1 cos 0 QoS tx priority queue and threshold mapped to cos successfully
您必須為兩個WRR隊列配置WRR權重。發出以下命令:
set qos wrr Q_type weight_1 weight_2
Weight_1與隊列1相關,該隊列應該是低優先順序WRR隊列。weight_1必須始終低於weight_2。此權重可以採用1到255之間的任何值。您可以使用以下公式分配百分比:
隊列1:
weight_1 / (weight_1 + weight_2)
隊列2:
weight_2 / (weight_1 + weight_2)
您還必須定義各種型別的隊列的權重。重量不必相同。例如,對於2q2t(其中30%的時間為隊列1,70%的時間為隊列2),可以發出以下命令以定義權重:
set qos wrr 2q2t 30 70 !--- This ensures that the high-priority WRR queue is served 70 percent of the time !--- and that the low-priority WRR queue is served 30 percent of the time.
tamer (enable) set qos wrr 2q2t 30 70 QoS wrr ratio is set successfully
您還必須定義傳輸隊列比率,它是指緩衝區在不同隊列中的拆分方式。發出以下命令:
set qos txq-ratio port_type queuel_val queue2_val ... queueN_val
注意:如果您有三個隊列(1p2q2t),則出於硬體原因,必須將高優先順序WRR隊列和嚴格優先順序隊列設定為同一級別。
set qos txq-ratio 1p2q2t 70 15 15 !--- This gives 70 percent of the buffer of all 1p2q2t ports to the low-priority WRR !--- queue and gives 15 percent to each of the other two queues. set qos txq-ratio 2q2t 80 20 !--- This gives 80 percent of the buffer to the low-priority queue, !--- and gives 20 percent of the buffer to the high-priority queue.
tamer (enable) set qos txq-ratio 1p2q2t 70 15 20 Queue ratio values must be in range of 1-99 and add up to 100 Example: set qos txq-ratio 2q2t 20 80 tamer (enable) set qos txq-ratio 1p2q2t 70 30 30 Queue ratio values must be in range of 1-99 and add up to 100 Example: set qos txq-ratio 2q2t 20 80 tamer (enable) set qos txq-ratio 1p2q2t 80 10 10 QoS txq-ratio is set successfully
如以下控制檯輸出所示,隊列值的總和必須為100。請為低優先順序WRR隊列保留緩衝區的最大部分,因為該隊列需要最多的緩衝。其他隊列的優先順序更高。
最後一步是為WRED隊列或尾部丟棄隊列配置閾值級別。發出以下命令:
set qos wred port_type [tx] queue q_num thr1 thr2 ... thrn set qos drop-threshold port_type tx queue q_num thr1 ... thr2
set qos drop-threshold 2q2t tx queue 1 50 80 !--- For low-priority queues in the 2q2t port, the first threshold is defined at 50 !--- percent and the second threshold is defined at 80 percent of buffer filling. set qos drop-threshold 2q2t tx queue 2 40 80 !--- For high-priority queues in the 2q2t port, the first threshold is defined at 40 !--- percent and the second threshold is defined at 80 percent of buffer filling. set qos wred 1p2q2t tx queue 1 50 90 !--- The commands for the 1p2q2t port are identical. set qos wred 1p2q2t tx queue 2 40 80
tamer (enable) set qos drop-threshold 2q2t tx queue 1 50 80 Transmit drop thresholds for queue 1 set at 50% 80% tamer (enable) set qos drop-threshold 2q2t tx queue 2 40 80 Transmit drop thresholds for queue 2 set at 40% 80% tamer (enable) set qos wred 1p2q2t tx queue 1 50 90 WRED thresholds for queue 1 set to 50 and 90 on all WRED-capable 1p2q2t ports tamer (enable) set qos wred 1p2q2t tx queue 2 40 80 WRED thresholds for queue 2 set to 40 and 80 on all WRED-capable 1p2q2t ports
set qos wred 1p2q2t tx queue 2 40 80命令與用於閾值對映的CoS協同工作。例如,當您發出以下清單中的命令時,您確保在1p2q2t埠上傳輸方向上,CoS 0、1、2和3的資料包被傳送到第一個隊列(低WRR隊列)。 當隊列中的緩衝區已滿50%時,WRED開始丟棄具有CoS 0和1的資料包。只有隊列中的緩衝區已滿90%時,才會丟棄具有CoS 2和3的資料包。
set qos map 1p2q2t tx 1 1 cos 0 set qos map 1p2q2t tx 1 1 cos 1 set qos map 1p2q2t tx 1 2 cos 2 set qos map 1p2q2t tx 1 2 cos 3 set qos wred 1p2q2t tx queue 1 50 90
用於驗證埠輸出排程的當前運行時配置的簡單命令是show qos info runtime mod/port 。命令會顯示以下資訊:
埠上的排隊型別
CoS到不同隊列和閾值的對映
緩衝區共用
WRR重量
在本示例中,隊列1的值是20% WRR,隊列2的值是80% WRR:
tamer (enable) show qos info runtime 1/1 Run time setting of QoS: QoS is enabled Policy Source of port 1/1: Local Tx port type of port 1/1 : 1p2q2t Rx port type of port 1/1 : 1p1q4t Interface type: port-based ACL attached: The qos trust type is set to untrusted Default CoS = 0 Queue and Threshold Mapping for 1p2q2t (tx): Queue Threshold CoS ----- --------- ------- 1 1 0 1 1 2 2 3 2 1 4 6 2 2 7 3 1 5 Queue and Threshold Mapping for 1p1q4t (rx): All packets are mapped to a single queue Rx drop thresholds: Rx drop thresholds are disabled Tx drop thresholds: Tx drop-thresholds feature is not supported for this port type Tx WRED thresholds: Queue # Thresholds - percentage (* abs values) ------- ------------------------------------------ 1 80% (249088 bytes) 100% (311168 bytes) 2 80% (52480 bytes) 100% (61440 bytes) Queue Sizes: Queue # Sizes - percentage (* abs values) ------- ------------------------------------- 1 70% (311296 bytes) 2 15% (65536 bytes) 3 15% (65536 bytes) WRR Configuration of ports with speed 1000Mbps: Queue # Ratios (* abs values) ------- ------------------------------------- 1 20 (5120 bytes) 2 80 (20480 bytes) (*) Runtime information may differ from user configured setting due to hardware granularity. tamer (enable)
在下一個示例中,請注意WRR權重不是預設值1。隊列1的權重設定為20,隊列2的權重設定為80。此示例使用流量生成器將2 Gb的流量傳送到Catalyst 6000。這些2 Gb的流量應通過埠1/1退出。由於埠1/1超額訂閱,因此丟棄了許多資料包(1 Gbps)。 show mac命令顯示有許多輸出捨棄專案:
tamer (enable) show mac 1/1 Port Rcv-Unicast Rcv-Multicast Rcv-Broadcast -------- -------------------- -------------------- -------------------- 1/1 0 1239 0 Port Xmit-Unicast Xmit-Multicast Xmit-Broadcast -------- -------------------- -------------------- -------------------- 1/1 73193601 421 0 Port Rcv-Octet Xmit-Octet -------- -------------------- -------------------- 1/1 761993 100650803690 MAC Dely-Exced MTU-Exced In-Discard Out-Discard -------- -------------- ---------------- --------------- ----------------- 1/1 0 - 0 120065264 Last-Time-Cleared -------------------------- Fri Jan 12 2001, 17:37:43
請考慮捨棄的封包。這就是拆分建議流量模式的方式:
1 Gb流量,IP優先順序為0
250 Mb流量,具有IP優先順序4
250 Mb流量,具有IP優先順序5
250 Mb流量,具有IP優先順序6
250 Mb流量,具有IP優先順序7
根據CoS對映,傳送此流量:
1 Gb流量排隊1閾值1
0 Mb流量排隊1閾值2
500 Mb流量排隊2閾值1
250 Mb流量排隊2閾值2
到隊列3的250 Mb流量(嚴格優先順序隊列)
交換機必須信任收到的流量,以便傳入IP優先順序保留在交換機中並用於對映到CoS值以進行輸出排程。
注意:到CoS的預設IP優先順序對映為IP優先順序等於CoS。
發出show qos stat 1/1命令,以檢視遭到捨棄的封包和大約百分比:
此時,隊列3中沒有丟棄資料包(CoS 5)。
被丟棄的資料包中有91.85%是隊列1中的CoS 0資料包。
8%的丟棄資料包是隊列2中的CoS 4和6,閾值1。
0.15%的丟棄資料包是隊列2、閾值2中的CoS 7。
以下輸出說明命令的使用方式:
tamer (enable) show qos stat 1/1 Tx port type of port 1/1 : 1p2q2t Q3T1 statistics are covered by Q2T2. Q # Threshold #:Packets dropped --- ------------------------------- 1 1:110249298 pkts, 2:0 pkts 2 1:9752805 pkts, 2:297134 pkts 3 1:0 pkts Rx port type of port 1/1 : 1p1q4t Rx drop threshold counters are disabled for untrusted ports Q # Threshold #:Packets dropped --- --------------------------------- 1 1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts 2 1:0 pkts
如果在清除計數器後將WRR權重更改回預設值,則隊列2中僅出現丟棄資料包的1%,而不是之前出現的8%:
注意:隊列1的預設值為5,隊列2的預設值為255。
tamer (enable) show qos stat 1/1 TX port type of port 1/1 : 1p2q2t Q3T1 statistics are covered by Q2T2 Q # Threshold #:Packets dropped --- ---------------------------------- 1 1:2733942 pkts, 2:0 pkts 2 1:28890 pkts, 2:6503 pkts 3 1:0 pkts Rx port type of port 1/1 : 1p1q4t Rx drop threshold counters are disabled for untrusted ports Q # Threshold #:Packets dropped --- ------------------------------------ 1 1:0 pkts, 2:0 pkts, 3:0 pkts, 4:0 pkts 2 1:0 pkts
監控輸出排程和驗證配置一節中的示例演示了輸出排程實施的好處,它可避免在輸出埠超訂用時丟棄VoIP或任務關鍵型流量。超訂用在正常網路中,尤其是在千兆鏈路上很少發生。通常,超訂用僅在流量高峰時間或在極短時間內的流量突發期間發生。
即使沒有任何超訂用,在端到端實施QoS的網路中,輸出排程也可以有很大的幫助。輸出排程有助於減少延遲和抖動。本節提供輸出排程如何幫助減少延遲和抖動的示例。
在等待傳輸期間,封包的延遲會增加每個交換器的緩衝區中「丟失」的時間。例如,在大型備份或檔案傳輸期間,會將CoS為5的小型語音資料包從埠傳送出去。如果輸出埠沒有任何QoS,並且假設小型語音資料包在10個大型1500位元組資料包後排隊,則可以輕鬆計算傳輸10個大型資料包所需的千兆速度時間:
(10 × 1500 × 8) = 120,000 bits that are transmitted in 120 microseconds
如果此資料包在通過網路時需要經過八到九台交換機,則可能導致大約1毫秒的延遲。此數量僅計算網路中交叉的交換機的輸出隊列中的延遲。
注意:如果需要在10 Mbps介面上為相同的10個大型資料包排隊(例如,使用IP電話並連線PC),則引入的延遲為:
(10 × 1500 × 8) = 120,000 bits that are transmitted in 12 ms
輸出排程實施可以確保CoS為5的語音資料包被放入嚴格的優先順序隊列中。此放置可確保在CoS小於5的任何資料包之前傳送這些資料包,從而減少延遲。
輸出排程實施的另一個重要優點是它減少了抖動。抖動是觀察同一資料流中資料包的延遲變化。圖8中的圖顯示了輸出排程如何減少抖動的示例場景:
圖8
在此案例中,有一個輸出連線埠必須傳送兩個流:
一個在10 Mbps乙太網埠上傳入的語音流
一個1 Gbps乙太網上行鏈路傳入的FTP流
兩個流通過相同的輸出埠離開交換機。此示例顯示不使用輸出排程會發生的情況。所有大資料包都可以在兩個語音資料包之間交錯,這會導致從同一資料流接收語音資料包時產生抖動。當交換器傳輸大資料封包時,封包n和封包n+1之間的延遲較大。但是,n+1和n+2之間的延遲是可忽略的。這會導致語音流量流中的抖動。使用嚴格的優先順序隊列可以輕鬆地避免此問題。確保將語音資料包的CoS值對映到嚴格的優先順序隊列。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
13-Apr-2007 |
初始版本 |