介紹
輸出調度用于確保重要業務在嚴重超量預訂的情況下不會被丟棄。本文將說明所有涉及Catalyst 6000交換機輸出調度的技術和算法。本文還將重點說明如何在運行集成Cisco IOS®(本機模式)的Catalyst 6000上對輸出調度進行配置,如何檢驗操作。
如果您想知道有關加權早期隨機檢測(WRED)、加權循環(WRR)以及尾端丟棄的詳細信息,或者您的Catalyst 6 000上使用混合模式軟件,請參考“Catalyst 6000系列交換機上的QoS:采用混合模式在帶PFC的Catalyst 6000上進行輸出調度”。
Catalyst 6000上不同線路卡的輸出隊列能力
如果您并不確定某個端口的隊列能力,那么首先要做的就是發出 show queueing interface <gig | fast et> <mod/port> 命令。以下是SUP1A線路卡上一個端口的 show queueing interface 命令輸出的前幾行:
cosmos#show queueing interface gig 1/1
Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin
QoS is disabled globally
Trust state: trust DSCP
Default COS is 0
Transmit group-buffers feature is enabled
Transmit queues [type = 1p2q2t]:
Queue Id Scheduling Num of thresholds
-----------------------------------------
1 WRR low 2
2 WRR high 2
3 Priority 1
.....(output truncated)
正如您所看到的,該端口的輸出隊列類型稱為1p2q2。
了解端口的隊列能力
Catalyst 6000以及6500交換機上有好幾種隊列類型。下表說明了端口QoS體系結構的表示方法。
發送/接收端 | 隊列表示法 | 隊列數量 | 優先級隊列 | WRR隊列數量 | WRR隊列數量及類型閾值 |
Tx | 2q2t | 2 | - | 2 | 2 configurable Tail-Drop |
Tx | 1p2q2t | 3 | 1 | 2 | 2 configurable WRED |
Tx | 1p3q1t | 4 | 1 | 3 | 1 configurable WRED |
Tx | 1p2q1t | 3 | 1 | 2 | 1 configurable WRED |
Rx | 1q4t | 1 | - | 1 | 4 configurable Tail-Drop |
Rx | 1p1q4t | 2 | 1 | 1 | 4 configurable Tail-Drop |
Rx | 1p1q0t | 2 | 1 | 1 | Not configurable |
Rx | 1p1q8t | 2 | 1 | 1 | 8 configurable WRED |
下表列出接口/端口接收與發送側的所有模塊以及隊列類型。
模塊 | 接收隊列 | 發送隊列 |
WS-X6K-S2-PFC2 | 1p1q4t | 1p2q2t |
WS-X6K-SUP1A-2GE | 1p1q4t | 1p2q2t |
WS-X6K-SUP1-2GE | 1q4t | 2q2t |
WS-X6501-10GEX4 | 1p1q8t | 1p2q1t |
WS-X6502-10GE | 1p1q8t | 1p2q1t |
WS-X6516-GBIC | 1p1q4t | 1p2q2t |
WS-X6516-GE-TX | 1p1q4t | 1p2q2t |
WS-X6416-GBIC | 1p1q4t | 1p2q2t |
WS-X6416-GE-MT | 1p1q4t | 1p2q2t |
WS-X6316-GE-TX | 1p1q4t | 1p2q2t |
WS-X6408A-GBIC | 1p1q4t | 1p2q2t |
WS-X6408-GBIC | 1q4t | 2q2t |
WS-X6524-100FX-MM | 1p1q0t | 1p3q1t |
WS-X6324-100FX-SM | 1q4t | 2q2t |
WS-X6324-100FX-MM | 1q4t | 2q2t |
WS-X6224-100FX-MT | 1q4t | 2q2t |
WS-X6548-RJ-21 | 1p1q0t | 1p3q1t |
WS-X6548-RJ-45 | 1p1q0t | 1p3q1t |
WS-X6348-RJ-21 | 1q4t | 2q2t |
WS-X6348-RJ21V | 1q4t | 2q2t |
WS-X6348-RJ-45 | 1q4t | 2q2t |
WS-X6348-RJ-45V | 1q4t | 2q2t |
WS-X6148-RJ-45V | 1q4t | 2q2t |
WS-X6148-RJ21V | 1q4t | 2q2t |
WS-X6248-RJ-45 | 1q4t | 2q2t |
WS-X6248A-TEL | 1q4t | 2q2t |
WS-X6248-TEL | 1q4t | 2q2t |
WS-X6024-10FL-MT | 1q4t | 2q2t |
[page]
Catalyst 6000上輸出調度的配置、監控以及實例
配置
本節說明在支持本機IOS的Catalyst 6000上配置輸出調度時應遵循的所有步驟。有關Catalyst 6000的默認配置,請參閱本文的 默認配置一節。
Catalyst 6000的配置包含以下任務:
1.啟用服務質量(服務質量)
2.將每個可能的服務級別(CoS)值映射到隊列和閾值
3.配置WRR加權
4.配置分配給每個隊列的緩沖區
5.配置每個隊列的閾值級別
注意: 所有這些任務(除第一項外)均為可選任務。您可以決定一個或多個參數保持默認值。
下文將對這五個步驟作詳細的解釋。
1.首先啟用QoS。請記住,QoS默認值禁用。當QOS禁用時,無論您對CoS映射作何種配置,都不會影響結果。系統只會以先進先出(FIFO)的方式處理一條隊列,所有數據包將被丟棄。 cosmos#conf t
Enter configuration commands, one per line. End with CNTL/Z.
cosmos(config)#mls qos
QoS is enabled globally
Microflow policing is enabled globally
QoS global counters:
Total packets: 552638
IP shortcut packets: 0
Packets dropped by policing: 0
IP packets with TOS changed by policing: 0
IP packets with COS changed by policing: 0
Non-IP packets with CoS changed by policing: 0
2.CoS到隊列/閾值的映射必須分配給所有隊列類型。定義給2q2t型端口的映射將不能應用于任何1p2q2t端口。同樣,您定義給2q2t的映射將被應用于所有具2q2t隊列機制的端口。實現該操作的命令是如下在接口方式下的cos-map命令:
wrr-queue cos-map<Q number (1-2)> <threshold_number (1-2)> <cos value 1> <cos value 2> priority-queue cos-map<Q number (always 1)> <cos value 1> <cos value 2>
從這里可以看出,您可以對WRR隊列分別進行配置。如果存在優先級隊列,您可以使用priority-queue命令對其進行配置。
注意: 隊列總是從優先級最低的隊列開始編號,并以絕對優先的隊列結束。例如:
- 隊列1將是低優先級WRR隊列
- 隊列2將是高優先級WRR隊列
- 隊列3將是絕對優先隊列
所有類型的隊列均可重復此操作或者保持默認的CoS分配值。例如,對于1p2q2t隊列:
cosmos#conf t cosmos(config)#int gig 1/1 cosmos(config-if)#priority-queue cos-map 1 5 !-- CoS 5 分配給優先級隊列 cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 1 1 0 1 !-- CoS 0 和1 分配給低WRR隊列的第一個閥值 cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 1 2 2 3 !-- CoS 2 和3 分配給低WRR隊列的第二個閥值 cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 2 1 4 6 !-- CoS 4 和6分配給高WRR隊列的第一個閥值 cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 2 2 7 !-- CoS 7分配給高WRR隊列的第一個閥值 cos-map configured on: Gi1/1 Gi1/2
檢查配置:
cosmos#show queueing int gig 1/1 ...output truncated queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 6 2 2 7 3 1 5 .... output truncated
1.WRR加權需要配置給兩個WRR隊列??梢酝ㄟ^發出以下接口命令來實現:
wrr-queue bandwith <weight for Q1> <weight for Q2>
加權1與隊列1關聯,該隊列應為低優先級WRR隊列。該加權應總是保持比加權2低一個級別。該加權可以在1和255之間任意取值,并可使用以下公式分配百分比:
對于隊列1:[加權1/(加權1+加權2)]
對于隊列2:[加權2/(加權1+加權2)]
必須定義所有隊列類型的加權。這些加權類型不必相同。例如,對于2q2t,隊列1得到20%的處理而隊列2得到80%的處理:
cosmos#conf t Enter configuration commands, one per line. End with CNTL/Z. cosmos(config)#int gig 1/1 cosmos(config-if)#wrr-queue bandwidth ? <1-255> enter bandwidth weight between 1 and 255 cosmos(config-if)#wrr-queue bandwidth 20 80 !-- 隊列 1消耗20%的時間, 隊列 2將消耗80%的時間。 cosmos(config-if)#
檢查配置:
cosmos#show queueing interface gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 20[queue 1] 80[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] .... output truncated....
注意: 當無法使用混合模式時,您可以對各接口配置不同的WRR加權。
1.必須定義發送隊列比率。這可決定為不同隊列之間分緩沖的方式。如果您有三個隊列(1p2q2t),您需要對高優先級WRR隊列以及絕對優先隊列設定相同的級別。這些級別不能因硬件原因而不同。僅為這兩個WRR隊列配置帶寬,如果有絕對優先隊列,我們將自動地將與高優先級的WRR隊列相同的值配置給該隊列。
wrr-queue queue-limit <percentage WRR q1> <percentage WRR Q2> cosmos(config)#int gig 1/2 cosmos(config-if)#wrr-queue queue-limit 70 15 !--隊列 1將占用70% 緩沖器,隊列 2 和3各占15%。 queue-limit configured on: Gi1/1 Gi1/2
檢查配置:
cosmos#show queueing interface gig 1/2 Interface GigabitEthernet1/2 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 5[queue 1] 255[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2]
注意: 最好為低優先級WRR隊列留最大緩沖區,因為對于這個隊列,我們需要啟用更多緩沖器。其它隊列將享受較高優先級的服務。
1.最后一步是對WRED隊列或者尾端丟棄隊列配置閾值級別。命令如下:
使用WRED作為丟棄機制的隊列,配置閾值采用以下命令:
wrr-queue random-dtect max-threshold <Q number> <threshold 1 value> <threshold 2 value>
對于使用尾端丟棄作為丟棄機制的隊列,采用以下命令:
wrr-queue threshold <Q number> <threshold 1 value> <threshold 2 value>
配置WRED隊列:
cosmos(config)# int gig 1/1 cosmos(config-if)#wrr-queue random-detect max-threshold 1 50 80 !-- 將隊列1的閥值設置為50,最大閥值的80%配置于:Gi1/1 Gi1/2. cosmos(config-if)#wrr-queue random-detect max-threshold 2 40 60 !-- 將隊列2的閥值設置為49,最大閥值的60%配置于:Gi1/1 Gi1/2.
配置尾端丟棄隊列:
cosmos(config)#int fast e 3/1 cosmos(config-if)#wrr-queue threshold ? <1-2> enter threshold queue id (1-2) cosmos(config-if)#wrr-queue threshold 1 ? <1-100> enter percent of queue size between 1 and 100 cosmos(config-if)#wrr-queue threshold 1 50 100 !-- 我們將隊列1(低優先級)2q2t接口沒有尾數的閥值設置為50, !-- 并填滿整個緩沖器: threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 Fa3/9 Fa3/10 Fa3/11 Fa3/12 cosmos(config-if)# cosmos(config-if)# cosmos(config-if)#wrr-queue threshold 2 40 100 !-- 我們將隊列2(高優先級)2q2t接口沒有尾數的閥值設置為40, !-- 并填滿整個緩沖器: threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 Fa3/9 Fa3/10 Fa3/11 Fa3/12 cosmos(config-if)#
檢查配置:
cosmos#show queueing int gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 20[queue 1] 80[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 50[1] 80[2] 2 40[1] 60[2] cosmos#show queueing int fa 3/1 Interface FastEthernet3/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 WRR bandwidth ratios: 100[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 10[queue 2] queue tail-drop-thresholds -------------------------- 1 50[1] 100[2] 2 40[1] 100[2]
對于該隊列,閾值的配置以及CoS的分配無法在逐個端口進行。所有變化都應用于一組相鄰的端口:
千兆線路卡的四個端口:端口1至端口4是一組,端口5至端口8是另一組
10/100端口或者100光纖端口的12個端口:1到12、13到24、25到36、36到48
監控輸出調度以及配置檢驗
對于某個和輸出調度相關的端口,檢驗當前運行時間配置的最簡單的命令是show queueing interface [ gig | fast eth] [ slot/port]命令。該命令顯示端口上的隊列類型、CoS到不同隊列和閾值的映射、緩沖共享以及WRR加權(在這里,隊列1為20% WRR,隊列2為80% WRR)。該命令顯示輸出調度的所有配置信息,以及每個隊列的每個閾值所丟充的數據包數量:
cosmos#show queueing int gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default COS is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 20[queue 1] 80[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 50[1] 80[2] 2 40[1] 60[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 6 2 2 7 3 1 5 Receive queues [type = 1p1q4t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 Standard 4 2 Priority 1 queue tail-drop-thresholds -------------------------- 1 100[1] 100[2] 100[3] 100[4] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 1 3 4 1 4 6 7 2 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 0 [0 1 ] 1 2 0 [2 3 ] 2 1 0 [4 6 ] 2 2 0 [7 ] 3 1 0 [5 ] Packets dropped on Receive: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 0 [0 1 ] 1 2 0 [2 3 ] 1 3 0 [4 ] 1 4 0 [6 7 ] 2 1 0 [5 ]
輸出調度實例
Catalyst 6000中產生以下流量:
- 在千兆端口1/2:一千兆流量,優先值為零
- 在千兆端口5/2:
- 133 M流量 優先值為七
- 133 M流量 優先值為六
- 133 M流量 優先值為五
- 133 M流量 優先值為四
- 133 M流量 優先值為三
- 133 M流量 優先值為二
- 133 M流量 優先值為一
所有單點發送業務從交換機每個千兆端口1/1中出口,且出現超量預訂。
[page]
實例1:啟用了QoS并使用了缺省參數
本例中的所有輸出通過show int queueing int gig 1/1命令進行配置。該命令提供了輸入調度的其它信息。但是本文僅說明輸出調度,該輸出被刪節。
想一想如果QoS全面啟用且幾分鐘后使用所有默認參數,會發生什么:
nelix#show queueing int gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 100[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 149606424 [0 1 ] 1 2 0 [2 3 ] 2 1 16551394 [4 ] 2 2 4254446 [6 7 ] 3 1 0 [5 ]
從上面的輸出可看出默認值包括:
- 隊列1的WRR加權:100/(100+255)= 28%
- 隊列2的WRR加權:255/(255+100)= 72%
- 緩沖共享:隊列1得到90%,隊列2得到5%,絕對優先隊列得到5%
低優先級WRR隊列中的大部分數據包被丟棄,但仍有一些因為雙重閾值插入在高優先級WRR隊列中。總共有(149606424 + 16551394 + 4254446)= 170412264個數據包被丟棄。這些丟棄的數據包按以下方式分布:
- 149606424/170412264 = 88%丟棄在隊列1(CoS 0 和1的第一閾值數據包)
- 16551394/170412264 = 10%丟棄在隊列1(CoS 4的第一閾值數據包)
- 4254446/170412264 = 2%丟棄在隊列2(CoS 6或7的第二閾值數據包)
注意: 絕對優先隊列中沒有看到丟棄。
實例2:修改WRR加權
如前面的例子所示,隊列2中的數據包仍然被丟棄。修改WRR加權向隊列2提供更多帶寬。現在隊列1將清出4%的時間,隊列2將清出96%的時間:
show run int gig 1/1 interface GigabitEthernet1/1 no ip address wrr-queue bandwidth 10 255 mls qos trust dscp switchport switchport mode access end nelix#show queueing int gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 10[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 2786205 [0 1 ] 1 2 0 [2 3 ] 2 1 11363 [4 ] 2 2 69 [6 7 ] 3 1 0 [5 ]
從以上輸出可見,隊列2丟棄的百分比現在大大減少??偣?797637的丟棄分布如下:
- 2786205/2797637 = 99.591%丟棄在隊列1(CoS 0和1的數據包)
- 11363/2797637 = 0.408%丟棄在隊列1(CoS 4的第一閾值數據包)
- 69/2797637 = 0.001%丟棄在隊列2(CoS 6和7的第二閾值數據包)
使用各種WRR加權可以確保隊列2得到更多QoS。
實例3:其它WRR加權修改
我們可對WRR加權作出更大的修改。在以下范例輸出中,僅向隊列1提供了0.39%的加權:
show run int gig 1/1 interface GigabitEthernet1/1 no ip address wrr-queue bandwidth 1 255 mls qos trust dscp switchport switchport mode access end nelix#show queueing int gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 1[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 2535315 [0 1 ] 1 2 0 [2 3 ] 2 1 705 [4 ] 2 2 73 [6 7 ] 3 1 0 [5 ]
即使增加了WRR加權,隊列2中的數據包仍被丟棄。但是,并非很多數據包被丟棄。隊列2中只有0.03%的丟包。
實例4:修改隊列極限緩沖區分配
如實例2和3所示,盡管WRR百分比能確保不會出現如此多的丟棄,但在隊列2中仍然有丟棄的數據包。在隊列2中仍有第二閾值的數據包被丟棄。這說明,當我們到達設定為100%的第二閾值且發現隊列飽和時,數據包仍被丟棄。
為了改善這個情況,對隊列極限作出更改(分配給各隊列的緩沖區大?。T谝韵聦嵗?,隊列1的隊列極限設定為70%,隊列2為15%,絕對優先隊列為15%:
show run gig 1/1 interface GigabitEthernet1/1 no ip address wrr-queue bandwidth 1 255 wrr-queue queue-limit 70 15 mls qos trust dscp switchport switchport mode access end nelix#show queueing int gig 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 1[queue 1] 255[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Receive queues [type = 1p1q4t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 Standard 4 2 Priority 1 queue tail-drop-thresholds -------------------------- 1 100[1] 100[2] 100[3] 100[4] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 1 3 4 1 4 6 7 2 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 154253046 [0 1 ] 1 2 0 [2 3 ] 2 1 0 [4 ] 2 2 0 [6 7 ] 3 1 0 [5 ]
現在,僅在隊列1中存在丟棄情況。
采用輸出調度減少延遲以及抖動
上述實例表明,實施輸出調度的益處在于:萬一輸出端口出現超量預訂,可以避免IP話音(VoIP)或者關鍵任務的話音丟棄。超量預訂在正常網絡中并不經常出現(特別是千兆鏈路上)。超量預訂一般只在流量高峰期間發生或在特定短時期內流量突發的情況下發生。
即使沒有任何超量預訂,輸出調度也能在端到端實施QoS的網絡中提供極大的幫助。使用輸出調度將有助于減少延遲及抖動。以下是輸出調度如何幫助減少延遲和抖動的實例。
減少延遲
當數據包在等待傳輸時如果被“丟失”在各個交換機的緩沖區中,數據包的延遲會增加。例如,一個CoS為5的小型話音數據包在出現大量擁堵或者正在進行巨量文件傳輸時從端口發出。如果該輸出端口不具有任何QoS,且假定該小型話音數據包的隊列位于10個大型的1500字節數據包之后,您可以很容易地計算出發送10個大型數據包的千兆速度時間:
120微秒內發送(10 x 1500 x 8)= 120000位
如果該數據包在網絡中穿行時需要通過八或九個交換機,則可能產生1毫秒的延遲時間。這只是對網絡中通過交換機的輸出隊列延遲所進行的計算。
注意: 如果您需要讓同樣的10個大型數據包在10M接口上排隊(例如有一個連接IP電話和一臺PC機),所產生的延遲將為:
120毫秒內發送(10 x 1500 x 8)= 120000比特
實施輸出調度將確保CoS為5的話音數據包被放入絕對優先隊列,這樣就能在CoS小于5的數據包之前得到發送。由此可減少延遲。
減少抖動
使用輸出調度的另一個重要好處就是減少抖動。抖動是可以在同一信息流內的數據包中觀察到的延遲變化。以下是輸出調度如何來減少抖動的實例情況。
在上述情況中,有兩個業務流需要在同一個端口發送:
- 一條話音流從10M以太網端口進入。
- 一條FTP流從1千兆以太網的上行鏈路進入。
兩個業務流通過同一個輸出端口離開交換機。本例說明當沒有使用輸出調度時可能發生的情況。所有大型數據包可能在兩個話音數據包之間交織,在從同一業務流中接收話音數據包時產生抖動。當交換機傳送大型數據包時,接收數據包1以及數據包N+1之間,存在一個更大的延遲。但是,N+1和N+2之間的延遲可以忽略不計。這導致了話音業務流中的抖動??梢酝ㄟ^使用絕對優先隊列輕而易舉地避免該問題的發生。請確保話音數據包的CoS值映射至絕對優先隊列。
結論
在本文中,通過對幾個實例的研究,您已經了解到在運行混合模式的Catalyst 6000上如何對輸出隊列調度進行配置以及如何進行故障排除。您還看到在支持話音業務的大部分網絡中,使用輸出調度有以下好處:
- 在輸出端口產生超量預訂的情況下,可以避免重要業務被丟棄。
- 減少延遲。
- 減少抖動。