簡介
本文檔介紹如何在模組化服務品質命令列介面策略對映中應用 bandwidth 和 priority 命令。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
bandwidth和priority命令均定義了可以在模組化服務品質命令列介面(MQC)策略對映中應用的操作,您可以透過 service-policy 命令將此策略對映應用於介面、子介面或虛電路(VC)。具體而言,這些命令為符合流量類條件的資料包提供頻寬保證。但是,這兩個命令在這些保證中具有重要的功能差異。本技術說明解釋這些差異,並說明如何將某個類別的未使用頻寬分配給匹配其他類別的流量。
差異彙總
下表列出了 bandwidth 和 priority 命令之間的功能差異:
函式 |
bandwidth命令 |
priority命令 |
最小頻寬保證 |
是 |
是 |
最大頻寬保證 |
否 |
是 |
內建監察器 |
否 |
是 |
提供低延遲 |
否 |
是 |
此外, bandwidth 和priority命令的設計旨在滿足不同的服務品質(QoS)策略目標。下表列出了這些不同的目標:
應用程式 |
bandwidth命令 |
priority命令 |
WAN鏈路的頻寬管理 |
是 |
有些 |
管理延遲和延遲變化(抖動) |
否 |
是 |
縮短應用響應時間 |
否 |
是 |
即使使用快速介面,大多數網路仍然需要強大的QoS管理模型來有效處理由於速度不匹配或不同的流量模式而不可避免地出現的擁塞點和瓶頸。真實世界的網路具有有限的資源和資源瓶頸,並且需要QoS策略來確保正確的資源分配。
配置頻寬命令
Cisco IOS ® 配置指南將 bandwidth 命令描述為「要分配給類的頻寬量(以kbps為單位)。..指定或修改為屬於策略對映的類分配的頻寬。
看看這些定義意味著什麼。
bandwidth 命令可以在出現擁塞時提供最低頻寬保證。命令語法有三種形式,如下表所示:
命令語法 |
說明 |
bandwidth {kbps}
|
將頻寬分配指定為位元率。 |
bandwidth percent {value}
|
以主鏈路速率的百分比指定頻寬分配。 |
bandwidth remaining percent {value}
|
將頻寬分配指定為尚未分配給其他類的頻寬的百分比。 |
注意:bandwidth命令定義了一種行為,即最小頻寬保證。並非所有Cisco路由器平台都使用 weighted-fair queueing (WFQ)作為實現此行為的主要演算法。有關詳細資訊,請參閱為什麼使用CBWFQ?
配置Priority命令
Cisco IOS配置指南將priority命令描述為「一個優先順序隊列,該隊列具有指定數量的CBWFQ流量可用頻寬……以根據流量策略內的可用頻寬量為流量類提供優先順序」的預留項。 下一個示例將解釋這些定義的含義。
您可以使用以下命令集建立優先順序隊列:
Router(config)#policy-map policy-name
Router(config-pmap)#class class-name
Router(config-pmap-c)#priority kpbs [bytes]
在擁塞狀況下,流量類別的頻寬會保證等於指定速率。(請回想一下,頻寬保證僅在介面擁塞時才會出現問題。) 換句話說, priority 命令提供了最小頻寬保證。
此外,透過 priority 命令還實現了最大頻寬保證。在內部,優先順序隊列使用令牌桶來測量提供的負載,並確保流量流符合配置的速率。只有符合令牌桶的流量才能保證低延遲。如果鏈路不擁塞,則會傳送任何超額流量;如果鏈路擁塞,則會丟棄任何超額流量。有關詳細資訊,請參閱什麼是令牌桶?
內建監察器的目的是確保隊列排程程式為其他隊列提供服務。在使用 priority-group 和 priority-list 命令的早期Cisco優先順序排隊功能中,排程程式總是首先服務於最高優先順序的隊列。在極端情況下,優先順序較低的隊列很少得到服務,並且實際上會缺乏頻寬。
priority 命令(以及其與 bandwidth 命令的主要區別)的真正優點是它如何提供嚴格的出列優先順序,從而提供一個延遲範圍。以下是《Cisco IOS配置指南》如何描述此優勢:「嚴格優先順序隊列(PQ)允許將延遲敏感型資料(例如語音)出隊,並在其他隊列中的資料包出隊之前傳送。」 看看這是什麼意思。
每個路由器介面維護以下兩組隊列:
佇列 |
位置 |
排隊方法 |
應用服務策略 |
要調整的命令 |
硬體隊列或傳輸環路 |
連線埠配接器或網路模組 |
僅限FIFO |
否 |
tx-ring-limit |
第3層隊列 |
第3層處理器系統或介面緩衝區 |
基於流量的WFQ、CBWFQ、LLQ |
是 |
因排隊方法而異。對頻寬類使用queue-limit命令。 |
從上表中我們可以看到,服務策略僅適用於第3層隊列中的資料包。
嚴格去排隊是指為優先順序隊列提供服務的排隊排程程式,它首先將資料包轉發到傳輸環路。傳輸環路是物理介質之前的最後一站。
在下圖中,傳輸環已配置為容納四個資料包。如果已經有三個資訊包在環中,那麼我們最多可以排到第四個位置,然後等待其他三個資訊包清空。因此,低延遲佇列(LLQ)機制只需將封包取消佇列到傳輸環路上的驅動程式層級先進先出(FIFO)佇列的尾端。
使用 tx-ring-limit 命令將傳輸環路的大小調整為非預設值。Cisco建議您在傳輸語音流量時調整傳輸環路。
流量優先排序對於延遲敏感型、互動式基於事務的應用尤其重要。為了最大限度地減少延遲和抖動,網路裝置必須能夠在語音資料包到達時立即提供服務,換言之,必須嚴格按照優先順序提供服務。只有嚴格的優先順序對語音有效。除非語音資料包立即取消排隊,否則每一跳都會帶來更多延遲。
國際電信聯盟(ITU)建議最大延遲為150毫秒的單向端到端延遲。如果沒有在路由器介面處立即取消排隊,則一個路由器跳就可以佔此延遲預算的大部分。有關詳細資訊,請參閱語音品質支援。
注意:對於這兩個命令,kbps值必須考慮第2層開銷。換句話說,如果對類做出保證,該保證將涉及第2層吞吐量。
哪些流量類別可以使用超額頻寬?
雖然我們將 bandwidth 和 priority 命令提供的頻寬保證描述為「預留」和「要留出的頻寬」,但這兩種命令都沒有實現真正的保留。換句話說,如果流量類未使用其配置的頻寬,則所有未使用的頻寬將在其他類之間共用。
佇列系統對具有優先順序類別的此規則施加重要的例外。如前所述,優先順序類別的已提供負載由流量監察器測量。 在擁塞狀況下,優先順序類別無法使用任何多餘的頻寬。
下表說明頻寬類別和優先順序類別可以使用額外頻寬的時間:
指令 |
擁塞 |
非擁塞 |
bandwidth命令 |
允許超過配置的速率。 |
允許超過配置的速率。 |
priority命令 |
Cisco IOS會測量封包,並透過權杖桶套用流量測量系統。匹配的資料包會根據配置的bps速率進行管制,任何超出的資料包都會被丟棄。 |
類可以超出其配置的頻寬。 |
注意:對於LLQ,這些準則的一個例外是Cisco 7200路由器和其他非路由/交換處理器(RSP)平台上的幀中繼。在這些平台上透過幀中繼最初實施的LLQ不允許優先順序類在非擁塞期間超過配置的速率。Cisco IOS軟體版本12.2消除了此例外,並確保只有在出現擁塞時才會丟棄不合規資料包。此外,小於FRF.12分段大小的資料包不再透過分段進程傳送,這降低了CPU使用率。
從前面的討論中,必須瞭解的是,由於優先順序類在擁塞條件下會受到管制,因此不會從頻寬類中分配任何剩餘的頻寬。因此,剩餘頻寬將由所有頻寬類和預設類共用。
未使用的頻寬分配
本部分解釋排隊系統如何分配任何剩餘頻寬。以下是基於類的加權公平排隊功能概述如何描述分配機制:「如果有超額頻寬,超額頻寬會根據配置的頻寬按比例在流量類之間分配。如果沒有分配所有頻寬,則剩餘頻寬會根據其配置的頻寬按比例分配到各類。」 請看兩個例子。
在第一個示例中,policy-map foo保證bar類將獲得30%的頻寬,baz類將獲得60%的頻寬。
policy-map foo
class bar
bandwidth percent 30
class baz
bandwidth percent 60
如果將此策略應用於1 Mbps鏈路,則意味著保證300 kbps為bar類,600 kbps為baz類。重要的是,100 kbps是類預設值的剩餘值。如果class-default不需要它,則未使用的100 kbps可供類欄和class baz使用。如果兩個類都需要頻寬,它們會根據配置的速率按比例共用頻寬。在此配置中,比率是30:60或1:2。
下一個示例配置包含三個策略對映:bar、baz和poli。在名為bar的策略對映和名為baz的策略對映中,頻寬按百分比指定。但是,在名為poli的策略對映中,頻寬以kbps為單位。
請記住,建立策略對映之前必須已建立類對映。
policy-map bar
class voice
priority percent 10
class data
bandwidth percent 30
class video
bandwidth percent 20
policy-map baz
class voice
priority percent 10
class data
bandwidth remaining percent 30
class video
bandwidth remaining percent 20
policy-map poli
class voice
class data
bandwidth 30
class video
bandwidth 20
注意:Cisco IOS版本12.2(T)中引入了bandwidth remaining percent命令。
使用Police命令設定最大值
如果在未出現擁塞時頻寬或優先順序類不能超出其分配的頻寬,您可以結合使用 priority 命令和 police 命令。此組態會套用類別上永遠處於作用中狀態的最大速率。在此配置中配置 police 語句的選擇取決於策略目標。
瞭解可用頻寬值
本部分說明排隊系統如何得到顯示在 show interface或 show queueing 命令輸出中的可用頻寬值。
我們建立了名為Leslie的策略對映:
7200-16#show policy-map leslie
Policy Map leslie
Class voice
Weighted Fair Queueing
Strict Priority
Bandwidth 1000 (kbps) Burst 25000 (Bytes)
Class data
Weighted Fair Queueing
Bandwidth 2000 (kbps) Max Threshold 64 (packets)
然後我們建立了一個ATM永久虛電路(PVC),將其分配給可變位元率非即時ATM服務類別,並配置了6 Mbps的持續信元速率。然後我們使用 service-policy output leslie 命令對此PVC應用策略對映。
7200-16(config)#interface atm 4/0.10 point
7200-16(config-subif)#pvc 0/101
7200-16(config-if-atm-vc)#vbr-nrt 6000 6000
7200-16(config-if-atm-vc)#service-policy output leslie
show queueing interface atm 此命令顯示了「Available Bandwidth 1500 kilobits/sec」。
7200-16#show queue interface atm 4/0.10
Interface ATM4/0.10 VC 0/101
queue strategy: weighted fair
Output queue: 0/512/64/0 (size/max total/threshold/drops)
Conversations 0/0/128 (active/max active/max total)
Reserved Conversations 1/1 (allocated/max allocated)
Available Bandwidth 1500 kilobits/sec
讓我們來看看此值的推導過程:
-
6 Mbps是持續信元速率(SCR)。預設情況下,75%的可預留空間:
0.75 * 6000000 = 4500000
-
3000 kbps已被語音和資料類使用:
4500000 - 3000000 = 1500000 bps
-
可用頻寬為1500000 bps。
預設的最大可預留頻寬值75%旨在為開銷流量(如路由協定更新和第2層keepalive)保留足夠的頻寬。它還包括第2層開銷,用於匹配且是定義的流量類或類預設類的資料包。您可以使用 max-reserved-bandwidth 命令增加ATM PVC的最大可預留頻寬值。有關受支援的Cisco IOS版本和更多背景資訊,請參閱瞭解ATM PVC的max-reserved-bandwidth命令。
在幀中繼PVC上, bandwidth 和 priority 命令將以下列一種方式計算可用頻寬總量:
-
如果未配置最小可接受承諾資訊速率(minCIR),則CIR除以2。
-
如果配置了minCIR,則會在計算中使用minCIR設定。可以將先前速率的全部頻寬分配給頻寬和優先順序類。
因此,幀中繼PVC不支援 max-reserved-bandwidth 命令,儘管您必須確保配置的頻寬量足夠容納第2層開銷。有關詳細資訊,請參閱在幀中繼PVC上配置CBWFQ。
相關資訊