簡介
本檔案將介紹 bandwidth
和 priority
命令以模組化的服務品質命令列介面策略對映應用。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
背景資訊
bandwidth 和priority 命令都定義可在模組化服務品質命令列介面(MQC)策略對映中應用的操作,然後可以通過 service-policy
指令。具體而言,這些命令為符合流量類標準的資料包提供頻寬保證。但是,這兩個命令在這些保證中具有重要的功能差異。本技術說明將解釋這些差異,並說明如何將某類未使用的頻寬分配給與其他類匹配的流。
差異摘要
下表列出了各元件之間的功能差異 bandwidth
和 priority
指令:
功能 |
bandwidth命令 |
priority命令 |
最小頻寬保證 |
是 |
是 |
最大頻寬保證 |
否 |
是 |
內建監察器 |
否 |
是 |
提供低延遲 |
否 |
是 |
此外, bandwidth
和priority 命令旨在滿足不同的服務品質(QoS)策略目標。下表列出了這些不同的目標:
應用 |
bandwidth命令 |
priority命令 |
廣域網鏈路的頻寬管理 |
是 |
有點 |
管理延遲和延遲(抖動)的變化 |
否 |
是 |
縮短應用程式響應時間 |
否 |
是 |
即使使用快速介面,大多數網路仍需要強大的QoS管理模型來有效處理由於速度不匹配或不同的流量模式而不可避免地出現的擁塞點和瓶頸。現實中的網路具有有限的資源和資源瓶頸,並且需要QoS策略來確保正確的資源分配。
配置Bandwidth命令
Cisco IOS ®配置指南介紹 bandwidth
命令作為「要分配給類的頻寬量(以kbps為單位)。.指定或修改為屬於策略對映的類分配的頻寬。"
看看這些定義意味著什麼。
其 bandwidth
命令可在擁塞期間提供最低頻寬保證。命令語法有三種形式,如下表所示:
指令語法 |
說明 |
bandwidth {kbps}
|
將頻寬分配指定為位元率。 |
bandwidth percent {value}
|
以主鏈路速率的百分比指定頻寬分配。 |
bandwidth remaining percent {value}
|
指定頻寬分配為未分配給其他類的頻寬的百分比。 |
註:bandwidth命令定義一個行為,即最小頻寬保證。並非所有思科路由器平台都使用 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
命令,排程器總是先為最高優先順序隊列提供服務。在極端情況下,優先順序較低的隊列很少得到服務,因此實際上會缺少頻寬。
真正的好處 priority
命令,以及它與 bandwidth
command — 它提供嚴格的去排隊優先順序以提供延遲繫結。以下是《Cisco IOS配置指南》對此優勢的描述:「嚴格的優先順序隊列(PQ)允許在其他隊列中的資料包出隊之前先將語音等延遲敏感資料出隊並傳送。」 看看這是什麼意思。
每個路由器介面都維護以下兩組隊列:
佇列 |
位置 |
排隊方法 |
應用服務策略 |
要調整的命令 |
硬體隊列或傳輸環 |
埠介面卡或網路模組 |
僅限FIFO |
否 |
tx-ring-limit |
第3層隊列 |
第3層處理器系統或介面緩衝區 |
基於流量的WFQ、CBWFQ、LLQ |
是 |
因排隊方法而異。對頻寬類使用queue-limit命令。 |
在上表中,我們可以看到service-policy僅適用於第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利用率。
從前面的討論中,必須瞭解的是,由於優先順序類在擁塞條件下被管制,因此它們不會從頻寬類中分配任何剩餘的頻寬。因此,剩餘頻寬由所有頻寬類和class-default共用。
未使用的頻寬分配
本節介紹排隊系統如何分配任何剩餘頻寬。以下是類別型加權公平排隊功能概觀對分配機制的描述:「如果超額頻寬可用,則超額頻寬按其配置頻寬的比例在流量類別之間分配。如果沒有分配所有頻寬,則剩餘頻寬會根據其配置的頻寬按比例分配到各類。」 看兩個例子。
在第一個示例中, policy-map foo保證類條頻寬的30%,類塊頻寬的60%。
policy-map foo
class bar
bandwidth percent 30
class baz
bandwidth percent 60
如果將此策略應用於1 Mbps鏈路,則意味著保證300 kbps為類欄,保證600 kbps為baz類。重要的一點是,100 kbps是類預設值的剩餘值。如果class-default不需要它,則未使用的100 kbps可由類bar和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
指令。
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
命令顯示可用頻寬1500 kb/秒。
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
指令。如需支援的Cisco IOS版本和進一步的背景資訊,請參閱瞭解ATM PVC上的max-reserved-bandwidth命令。
在幀中繼PVC上, bandwidth
和 priority
命令使用以下方法之一計算可用頻寬的總量:
因此, max-reserved-bandwidth
幀中繼PVC不支援此命令,但必須確保配置的頻寬量足以容納第2層開銷。有關詳細資訊,請參閱在幀中繼PVC上配置CBWFQ。
相關資訊