本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹對執行IOS的12000系列cisco路由器中不同線卡上可能發生的封包緩衝區耗盡訊息進行偵錯的程式。由於對GSR緩衝區管理缺乏瞭解,因此要更換實際工作正常的硬體,浪費寶貴的時間和資源的情況太普遍了。
閱讀器應瞭解Cisco 12000系列路由器架構。
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
GSR或12000系列思科路由器具有真正的分散式架構。這表示每個LC都執行自己的Cisco IOS軟體映像副本,並有智慧自行完成封包轉送決策。每個線卡都有自己的功能
在GSR中,分組交換期間最重要的操作之一是緩衝區管理,由位於線卡中的各種緩衝區管理ASIC(BMA)完成。以下是一些與GSR緩衝區管理有關的消息,在生產過程中可能會顯示在路由器日誌中。在下一節中,我們將討論導致這些消息出現在路由器日誌中的不同觸發器,採取什麼糾正措施緩解問題。在某些情況下,這還會導致資料包丟失,這可以表現為協定擺動並引起網路影響。
%EE48-3-QM_SANITY_WARNING: ToFab FreeQ buffers depleted
SLOT 1:Sep 16 19:06:40.003 UTC: %EE48-3-QM_SANITY_WARNING: Few free buffers(1) are available in ToFab FreeQ pool# 2
SLOT 8:Sep 16 19:06:45.943 UTC: %EE48-3-QM_SANITY_WARNING: Few free buffers(0) are available in ToFab FreeQ pool# 1
SLOT 0:Sep 16 19:06:46.267 UTC: %EE48-3-QM_SANITY_WARNING: Few free buffers(2) are available in ToFab FreeQ pool# 2
SLOT 8:Sep 16 19:06:47.455 UTC: %EE48-3-QM_SANITY_WARNING: ToFab FreeQ buffers depleted. Recarving the ToFab buffers
SLOT 8:Sep 16 19:06:47.471 UTC: %EE192-3-BM_QUIESCE:
要排除QM-SANITY警告錯誤,我們需要瞭解GSR線卡上的資料包流。下圖說明C12k線卡的主塊和資料包流路徑。
Cisco 12000系列Internet路由器上的線卡(LC)具有兩種型別的記憶體:
從以上圖可以看出,GSR線卡具有專用分組緩衝器ASIC(Application Specific Integrated Circuit),在資料流每個方向都有一個專用分組緩衝器ASIC,提供對分組儲存器的訪問。這些ASIC又稱為緩衝器管理ASIC(Buffer Management ASIC),線上卡上執行分組緩衝和緩衝器隊列管理功能。為了支援高吞吐量/轉發速率,兩個方向的資料包記憶體被分成不同大小的儲存池,用於轉發不同MTU大小的資料包。
由物理層介面模組(PLIM)卡接收的幀經過第2層處理,並被DMA到PLIM卡中的本地儲存器。一旦接收的資料單元完成,PLIM中的ASIC聯絡輸入BMA並請求適當大小的緩衝區。如果緩衝區已授予,則封包會移動到線卡輸入封包記憶體。如果沒有可用的緩衝區,資料包將被丟棄,被忽略的介面計數器將上升。輸入封包處理器對封包進行功能處理,作出轉送決定並將封包移動到與輸出線路卡對應的toFab佇列。交換矩陣介面ASIC(FIA)將資料包分段到思科信元,並將信元傳輸到交換機交換矩陣。然後,輸出線卡上的FIA從交換器網狀架構接收封包,並進入Frfab佇列進行重組,然後到達輸出PLIM,最後通過線路傳送。
FrFab BMA從特定緩衝池中選擇緩衝的決策基於輸入線卡交換引擎做出的決策。由於整個盒子上的所有隊列的大小和順序都相同,因此交換引擎會告訴傳輸LC將資料包放入其進入路由器的相同編號隊列中。
交換封包時,用於移動封包的輸入線路卡上的特定緩衝區池的佇列大小會減少一,直到輸出線路卡中的BMA傳回緩衝區。這裡我們還應注意,完整的緩衝區管理是由緩衝區管理ASIC在硬體中完成的,對於無缺陷操作,BMA必須將緩衝區返回原始池。
GSR封包緩衝區管理可能會遇到壓力或失敗而導致封包遺失的三種情況。 下面是三種方案。
硬體隊列管理失敗。當輸出BMA無法返回資料包緩衝區或將資料包緩衝區返回到錯誤的緩衝區池時,會發生這種情況。如果緩衝區返回到不正確的池,我們會看到一些緩衝池在不斷增長,而一些緩衝池在一段時間內消耗殆盡,最後會以耗盡的緩衝池大小影響資料包。當資料包緩衝區耗盡並超過警告閾值時,我們將開始看到QM-Sanity警告。
使用QM sanity debugs和show controllers tofab queues命令檢查您是否受此情況影響。請參閱故障排除部分,查詢如何啟用QM健全性閾值。
這種情況通常是由有故障的硬體造成的。檢查路由器上的以下輸出並查詢奇偶校驗錯誤或線卡崩潰。修複方法是更換線卡。
show controllers fia
show context all
show log
從QM健全性調試和show controller tofab隊列中,我們可以看到池2在不斷增大,而池4卻運行得很低。這表示池4正在丟失緩衝區,正在將其返回到池2。
QM正常調試:
SLOT 5:Oct 25 04:41:03.286 UTC: Pool 1: Carve Size 102001: Current Size 73078
SLOT 5:Oct 25 04:41:03.286 UTC: Pool 2: Carve Size 78462: Current Size 181569
SLOT 5:Oct 25 04:41:03.286 UTC: Pool 3: Carve Size 57539: Current Size 6160
SLOT 5:Oct 25 04:41:03.286 UTC: Pool 4: Carve Size 22870: Current Size 67
SLOT 5:Oct 25 04:41:03.286 UTC: IPC FreeQ: Carve Size 600: Current Size 600
show controllers tofab queues:
Qnum Head Tail #Qelem LenThresh
---- ---- ---- ------ ---------
4 non-IPC free queues:
102001/102001 (buffers specified/carved), 39.1%, 80 byte data size
1 13542 13448 73078 262143
78462/78462 (buffers specified/carved), 30.0%, 608 byte data size
2 131784 131833 181569 262143
57539/57539 (buffers specified/carved), 22.0%, 1616 byte data size
3 184620 182591 6160 262143
23538/22870 (buffers specified/carved), 8.74%, 4592 byte data size
4 239113 238805 67 262143
下一跳裝置或轉發路徑上的流量擁塞。在此場景中,GSR向其提供流量的裝置無法以GSR的速度處理,因此下一跳裝置向GSR傳送暫停幀,請求其減速。如果在GSR PLIM卡上啟用流量控制,路由器將執行暫停幀並開始緩衝資料包。最終,路由器將耗盡導致QM Sanity錯誤消息和資料包丟棄的緩衝區。當資料包緩衝區耗盡並超過警告閾值時,我們將開始看到QM-Sanity警告。有關如何查詢QM健全性閾值的故障排除部分。
使用輸出介面上的show interface輸出檢查路由器是否受此方案影響。以下擷取提供了一個介面接收暫停訊框的範例。該行動計畫將檢視下一跳裝置發生擁塞的原因。
GigabitEthernet6/2 is up, line protocol is up
Small Factor Pluggable Optics okay
Hardware is GigMac 4 Port GigabitEthernet, address is 000b.455d.ee02 (bia 000b.455d.ee02)
Description: Cisco Sydney Lab
Internet address is 219.158.33.86/30
MTU 1500 bytes, BW 500000 Kbit, DLY 10 usec, rely 255/255, load 154/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full Duplex, 1000Mbps, link type is force-up, media type is LX
output flow-control is on, input flow-control is on
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:02, output 00:00:02, output hang never
Last clearing of "show interface" counters 7w1d
Queueing strategy: random early detection (WRED)
Output queue 0/40, 22713601 drops; input queue 0/75, 736369 drops
Available Bandwidth 224992 kilobits/sec
30 second input rate 309068000 bits/sec, 49414 packets/sec
30 second output rate 303400000 bits/sec, 73826 packets/sec
143009959974 packets input, 88976134206186 bytes, 0 no buffer
Received 7352 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 7352 multicast, 45 pause input
234821393504 packets output, 119276570730993 bytes, 0 underruns
Transmitted 73201 broadcasts
0 output errors, 0 collisions, 0 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out
由於網路設計不佳/流量突發/DOS攻擊而導致超訂用時。如果持續出現高流量情況,其中流向路由器的流量大於線卡可以處理的流量,則會出現QM健全性警告。
為此,請檢查路由器中所有介面的流量速率。這將顯示是否有任何高速鏈路正在擁塞慢速鏈路。
使用show interface output命令。
檢查LC的當前QM健全性級別
連線到LC
前往啟用模式
運行test fab命令
收集「qm_sanity_info」的輸出
用於退出test fab命令列的選項q
從LC退出
配置QM健全性引數的步驟
要啟用/禁用QM健全性調試,請執行以下操作:
前往啟用模式
運行test fab命令
運行「qm_sanity_debug」。再次運行,將停止調試
用於退出test fab命令列的選項q
從LC退出
檢查GSR交換矩陣介面asic統計資訊
檢查Tofab隊列
檢查Frfab queus
從工作正常的實驗室路由器提取以下輸出以演示命令輸出。
GSR-1-PE-5#show controller fia
Fabric configuration: 10Gbps bandwidth (2.4Gbps available), redundant fabric
Master Scheduler: Slot 17 Backup Scheduler: Slot 16
Fab epoch no 0 Halt count 0
From Fabric FIA Errors
-----------------------
redund overflow 0 cell drops 0
cell parity 0
Switch cards present 0x001F Slots 16 17 18 19 20
Switch cards monitored 0x001F Slots 16 17 18 19 20
Slot: 16 17 18 19 20
Name: csc0 csc1 sfc0 sfc1 sfc2
-------- -------- -------- -------- --------
los 0 0 0 0 0
state Off Off Off Off Off
crc16 0 0 0 0 0
To Fabric FIA Errors
-----------------------
sca not pres 0 req error 0 uni fifo overflow 0
grant parity 0 multi req 0 uni fifo undrflow 0
cntrl parity 0 uni req 0
multi fifo 0 empty dst req 0 handshake error 0
cell parity 0
GSR-1-PE-5#attach 1
Entering Console for Modular SPA Interface Card in Slot: 1
Type "exit" to end this session
Press RETURN to get started!
LC-Slot1>en
LC-Slot1#test fab
BFLC diagnostic console program
BFLC (? for help) [?]: qm_sanity_debug
QM Sanity Debug enabled
BFLC (? for help) [qm_sanity_debug]:
SLOT 1:02:54:33: ToFAB BMA information
SLOT 1:02:54:33: Number of FreeQs carved 4
SLOT 1:02:54:33: Pool 1: Carve Size 102001: Current Size 102001
SLOT 1:02:54:33: Pool 2: Carve Size 78462: Current Size 78462
SLOT 1:02:54:33: Pool 3: Carve Size 57539: Current Size 57539
SLOT 1:02:54:33: Pool 4: Carve Size 22870: Current Size 22870
SLOT 1:02:54:33: IPC FreeQ: Carve Size 600: Current Size 600
SLOT 1:02:54:33: Number of LOQs enabled 768
SLOT 1:02:54:33: Number of LOQs disabled 1280
SLOT 1:02:54:33: ToFAB BMA information
SLOT 1:02:54:33: Number of FreeQs carved 4
SLOT 1:02:54:33: Pool 1: Carve Size 102001: Current Size 102001
SLOT 1:02:54:33: Pool 2: Carve Size 78462: Current Size 78462
SLOT 1:02:54:33: Pool 3: Carve Size 57539: Current Size 57539
SLOT 1:02:54:33: Pool 4: Carve Size 22870: Current Size 22870
SLOT 1:02:54:33: IPC FreeQ: Carve Size 600: Current Size 600
SLOT 1:02:54:33: Number of LOQs enabled 768
SLOT 1:02:54:33: Number of LOQs disabled 1280
QM Sanity Debug disabled
BFLC (? for help) [qm_sanity_debug]: qm_sanity_info
ToFab QM Sanity level Warning
FrFab QM Sanity level None
Sanity Check is triggered every 20 seconds
Min. buffers threshold in percentage 5
BFLC (? for help) [qm_sanity_info]: q
LC-Slot1#exi
Disconnecting from slot 1.
Connection Duration: 00:01:09
GSR-1-PE-5#config t
Enter configuration commands, one per line. End with CNTL/Z.
GSR-1-PE-5(config)#hw-module slot 1 qm-sanity tofab warning freq 10
GSR-1-PE-5(config)#end
GSR-1-PE-5#attach 1
02:57:25: %SYS-5-CONFIG_I: Configured from console by console
GSR-1-PE-5#attach 1
Entering Console for Modular SPA Interface Card in Slot: 1
Type "exit" to end this session
Press RETURN to get started!
LC-Slot1>en
LC-Slot1#test fab
BFLC diagnostic console program
BFLC (? for help) [?]: qm_sanity_info
ToFab QM Sanity level Warning
FrFab QM Sanity level None
Sanity Check is triggered every 10 seconds
Min. buffers threshold in percentage 5
BFLC (? for help) [qm_sanity_info]: q
LC-Slot1#exit
Disconnecting from slot 1.
Connection Duration: 00:00:27
GSR-1-PE-5#execute-on all show controllers tofab queues
========= Line Card (Slot 0) =========
Carve information for ToFab buffers
SDRAM size: 268435456 bytes, address: E0000000, carve base: E0018000
268337152 bytes carve size, 4 SDRAM bank(s), 16384 bytes SDRAM pagesize, 2 carve(s)
max buffer data size 4592 bytes, min buffer data size 80 bytes
262141/262141 buffers specified/carved
265028848/265028848 bytes sum buffer sizes specified/carved
Qnum Head Tail #Qelem LenThresh
---- ---- ---- ------ ---------
4 non-IPC free queues:
107232/107232 (buffers specified/carved), 40.90%, 80 byte data size
601 107832 107232 262143
73232/73232 (buffers specified/carved), 27.93%, 608 byte data size
107833 181064 73232 262143
57539/57539 (buffers specified/carved), 21.94%, 1616 byte data size
181065 238603 57539 262143
23538/23538 (buffers specified/carved), 8.97%, 4592 byte data size
238604 262141 23538 262143
IPC Queue:
600/600 (buffers specified/carved), 0.22%, 4112 byte data size
155 154 600 262143
Raw Queue (high priority):
0 0 0 65535
Raw Queue (medium priority):
0 0 0 32767
Raw Queue (low priority):
0 0 0 16383
ToFab Queues:
Dest Slot Queue# Head Tail Length Threshold
pkts pkts
==============================================================
0 0 0 0 0 262143
15 2191(hpr) 0 0 0 0
Multicast 2048 0 0 0 262143
2049 0 0 0 262143
========= Line Card (Slot 1) =========
Carve information for ToFab buffers
SDRAM size: 268435456 bytes, address: 26000000, carve base: 26010000
268369920 bytes carve size, 4 SDRAM bank(s), 32768 bytes SDRAM pagesize, 2 carve(s)
max buffer data size 4592 bytes, min buffer data size 80 bytes
262140/261472 buffers specified/carved
267790176/264701344 bytes sum buffer sizes specified/carved
Qnum Head Tail #Qelem LenThresh
---- ---- ---- ------ ---------
4 non-IPC free queues:
102001/102001 (buffers specified/carved), 39.1%, 80 byte data size
1 601 102601 102001 262143
78462/78462 (buffers specified/carved), 30.0%, 608 byte data size
2 102602 181063 78462 262143
57539/57539 (buffers specified/carved), 22.0%, 1616 byte data size
3 181064 238602 57539 262143
23538/22870 (buffers specified/carved), 8.74%, 4592 byte data size
4 238603 261472 22870 262143
IPC Queue:
600/600 (buffers specified/carved), 0.22%, 4112 byte data size
30 85 84 600 262143
Raw Queue (high priority):
27 0 0 0 65368
Raw Queue (medium priority):
28 0 0 0 32684
Raw Queue (low priority):
31 0 0 0 16342
ToFab Queues:
Dest Slot Queue# Head Tail Length Threshold
pkts pkts
=============================================================
::::::::::::::::::::
Hi Priority
0 2176(hpr) 0 0 0
1 2177(hpr) 0 0 0
2 2178(hpr) 0 0 0
3 2179(hpr) 0 0 0
4 2180(hpr) 553 552 0
5 2181(hpr) 0 0 0
6 2182(hpr) 0 0 0
7 2183(hpr) 0 0 0
8 2184(hpr) 0 0 0
9 2185(hpr) 0 0 0
10 2186(hpr) 0 0 0
11 2187(hpr) 0 0 0
12 2188(hpr) 0 0 0
13 2189(hpr) 0 0 0
14 2190(hpr) 0 0 0
15 2191(hpr) 0 0 0
Multicast
2048 0 0 0
2049 0 0 0
2050 0 0 0
2051 0 0 0
2052 0 0 0
2053 0 0 0
2054 0 0 0
2055 0 0 0
========= Line Card (Slot 3) =========
Carve information for ToFab buffers
SDRAM size: 268435456 bytes, address: E0000000, carve base: E0018000
268337152 bytes carve size, 4 SDRAM bank(s), 16384 bytes SDRAM pagesize, 2 carve(s)
max buffer data size 4112 bytes, min buffer data size 80 bytes
262142/262142 buffers specified/carved
230886224/230886224 bytes sum buffer sizes specified/carved
Qnum Head Tail #Qelem LenThresh
---- ---- ---- ------ ---------
3 non-IPC free queues:
94155/94155 (buffers specified/carved), 35.91%, 80 byte data size
601 94755 94155 262143
57539/57539 (buffers specified/carved), 21.94%, 608 byte data size
94756 152294 57539 262143
109848/109848 (buffers specified/carved), 41.90%, 1616 byte data size
152295 262142 109848 262143
IPC Queue:
600/600 (buffers specified/carved), 0.22%, 4112 byte data size
207 206 600 262143
Raw Queue (high priority):
0 0 0 65535
Raw Queue (medium priority):
0 0 0 32767
Raw Queue (low priority):
0 0 0 16383
ToFab Queues:
Dest Slot Queue# Head Tail Length Threshold
pkts pkts
==============================================================
0 0 0 0 0 262143
1 0 0 0 262143
2 0 0 0 262143
3 0 0 0 262143
:::::::::::::::::::::::::::
2049 0 0 0 262143
2050 0 0 0 262143
2051 0 0 0 262143
2052 0 0 0 262143
2053 0 0 0 262143
2054 0 0 0 262143
2055 0 0 0 262143
GSR-1-PE-5#execute-on slot 2 show controller frfab queues
========= Line Card (Slot 2) =========
Carve information for FrFab buffers
SDRAM size: 268435456 bytes, address: D0000000, carve base: D241D100
230567680 bytes carve size, 4 SDRAM bank(s), 16384 bytes SDRAM pagesize, 2 carve(s)
max buffer data size 4592 bytes, min buffer data size 80 bytes
235926/235926 buffers specified/carved
226853664/226853664 bytes sum buffer sizes specified/carved
Qnum Head Tail #Qelem LenThresh
---- ---- ---- ------ ---------
4 non-IPC free queues:
96484/96484 (buffers specified/carved), 40.89%, 80 byte data size
11598 11597 96484 262143
77658/77658 (buffers specified/carved), 32.91%, 608 byte data size
103116 103115 77658 262143
40005/40005 (buffers specified/carved), 16.95%, 1616 byte data size
178588 178587 40005 262143
21179/21179 (buffers specified/carved), 8.97%, 4592 byte data size
214748 235926 21179 262143
IPC Queue:
600/600 (buffers specified/carved), 0.25%, 4112 byte data size
66 65 600 262143
Multicast Raw Queue:
0 0 0 58981
Multicast Replication Free Queue:
235930 262143 26214 262143
Raw Queue (high priority):
78 77 0 235927
Raw Queue (medium priority):
11596 11595 0 58981
Raw Queue (low priority):
0 0 0 23592
Interface Queues:
Interface Queue# Head Tail Length Threshold
pkts pkts
======================================================
0 0 103107 103106 0 32768
3 178588 178587 0 32768
1 4 103110 103109 0 32768
7 11586 11585 0 32768
2 8 0 0 0 32768
11 0 0 0 32768
3 12 0 0 0 32768
15 0 0 0 32768
GSR-1-PE-5#
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
30-Jul-2017 |
初始版本 |