簡介
本文檔的目的是描述在運行Cisco IOS®軟體的裝置上可能遇到的三種型別的錯誤-欺騙訪問、校準錯誤和欺騙中斷。
如果您有思科裝置的show alignment命令輸出,則可以使用思科CLI分析器顯示潛在問題和解決方法。要使用思科CLI分析器,您必須是註冊客戶、已登入並已啟用JavaScript。
必要條件
需求
本文件沒有特定需求。
採用元件
並非所有平台都支援此指令(僅在精簡指令集運算[RISC]處理器中)。
show alignment命令是在12.3(7)T中引入的,並且在早期版本中處於隱藏狀態。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
欺騙性訪問
欺騙訪問是Cisco IOS軟體嘗試訪問受限制位置的記憶體。假訪問的系統日誌輸出示例如下所示:
%ALIGN-3-SPURIOUS: Spurious memory access made at 0x60968C44 reading 0x0
%ALIGN-3-TRACE: -Traceback= 60968C44 60269808 602389D8 00000000 00000000 00000000
00000000 00000000
原因
當進程嘗試從記憶體的最低16 KB區域讀取時,就會發生虛假訪問。這部分記憶體是保留的,絕不應被存取。這個記憶體區域的讀取作業通常是在將非現有的值傳回軟體中的函式時,或者換句話說,當將空指標傳遞給函式時,所引起的。
Cisco IOS軟體處理
根據平台的不同,Cisco IOS軟體會以不同的方式處理虛假訪問。在可能的情況下,Cisco IOS軟體代碼透過返回零值並記錄事件來處理這些無效訪問。如果平台不支援此功能,則路由器將崩潰,出現SegV錯誤。由於任何欺騙性訪問都不合適,因此欺騙性訪問總是指向錯誤。
檢驗欺騙性訪問錯誤
如果可能,Cisco IOS軟體會計數並記錄虛假訪問。透過show alignment命令可獲得此資訊。必須提供回溯資訊,才能確定欺騙性訪問的原因和解決方法。
注意:show alignment命令處於隱藏狀態,並且未記錄。此外,並非所有平台都支援此指令(只有精簡指令集運算[RISC]處理器)。下面提供了show alignment命令的示例輸出:
Router#show alignment
Alignment data for:
GS Software (RSP-PV-M), Version 11.1(26.1)CC, EARLY DEPLOYMENT MAINTENANCE INTER
IM SOFTWARE
Compiled Thu 27-May-99 20:48 by jjgreen
No alignment data has been recorded.
Total Spurious Accesses 167110746, Recorded 2
Address Count Traceback
0 10474 0x6012D488 0x6020FFB4 0x601D5CE0
0 49008 0x6012D488 0x6020D25C 0x6020E744 0x602106B4
Router#
修正欺騙性存取錯誤
欺騙性訪問錯誤總是由Cisco IOS軟體Bug引起的。若要修正此問題,請升級至版本系列中的最新版本(例如,如果您執行的是Cisco IOS軟體版本11.2(14),請升級至最新的11.2(x)映像。如果這不能解決問題,或者無法升級路由器,請與Cisco TAC聯絡。在打開案例以報告虛假訪問時,請包括以下內容:
校準錯誤
以下為對齊錯誤的系統日誌輸出範例:
%ALIGN-3-CORRECT: Alignment correction made at 0x60262478 reading/writing 0x60A9FF5C
原因
對齊錯誤是由未對齊的讀取和寫入引起的。例如,讀取記憶體地址不是兩個位元組的偶數倍數的雙位元組是校準錯誤。校準錯誤是由軟體Bug引起的。
驗證對齊錯誤
校準錯誤在日誌中報告,並由路由器記錄。show alignment命令的輸出提供這些錯誤以及可能有用的回溯的記錄。對準錯誤的回溯通常可被解碼以揭示導致對準問題的功能。
注意:show alignment命令處於隱藏狀態,並且未記錄。此外,並非所有平台都支援該命令(只有高端路由器支援該命令)。下面提供了show alignment命令的示例輸出:
Router#show alignment
Alignment data for:
RSP Software (RSP-ISV-M), Version 11.3(3a), RELEASE SOFTWARE (fc1)
Compiled Fri 01-May-98 18:28 by phanguye
Total Corrections 6, Recorded 2, Reads 6, Writes 0
Initial Initial
Address Count Access Type Traceback
60EF3765 3 32bit read 0x60262474 0x601AC594 0x601AC580
60EF3761 3 32bit read 0x60262478 0x601AC594 0x601AC580
No spurious memory references have been recorded.
Router#
更正對齊錯誤
校準錯誤通常可以透過軟體更正,如果更正了,則不會導致崩潰。然而,校正校準錯誤會消耗處理器資源,並可能導致效能下降。如果存在持續的對齊錯誤,路由器可能會將大部分時間花在修復錯誤上,從而增加CPU利用率。這些錯誤會在中斷時更正。
假中斷
假中斷與假記憶體訪問不同。
當已處理的資料包引發不必要的中斷時(可能由於內部競爭條件或中斷處理常式的初始化不正確),就會發生虛假中斷。假中斷對路由器的行為沒有明顯的影響。只要假中斷的數量不高且不斷增加,同時一些資料包丟失或效能下降,它們就可以被安全忽略。否則,必須調查根本原因。
show align命令提供了有關欺騙記憶體訪問而不是假中斷的資訊。可以從系統中獲得的唯一有關假中斷的資訊是在show stacks輸出中,該輸出中有一個計數器記錄發生了多少次。
Router#show stacks
Minimum process stacks:
Free/Size Name
3692/4000 DHCPD Receive
4796/6000 Router Init
1904/4000 Init
3408/4000 RADIUS INITCONFIG
4228/5000 DHCP Client
2468/4000 Exec
Interrupt level stacks:
Level Called Unused/Size Name
3 0 3000/3000 Serial interface state change interrupt
4 54351439 1760/3000 Network interfaces
5 64181 2872/3000 Console Uart
Spurious interrupts: 29
假中斷可能是硬體故障或軟體故障造成的。在大多數情況下,這不會對路由器或交換機的預期行為產生副作用。它們僅用於監控目的。
幾個假中斷不會導致CPU使用率過高。如果這是發生在路由器或交換機上的唯一症狀,並且其他一切正常(無資料包丟棄等),則可能會忽略假中斷。
基於68k處理器(即Cisco 1000、1600、2500、4000和7000 (RP))的Cisco路由器可以配置為在達到假中斷的特定閾值時生成核心轉儲。
Router(config)#exception ?
core-file Set name of core dump file
crashinfo Crashinfo collection
dump Set name of host to dump to
flash Set the device and erase permission
memory Memory leak debugging
protocol Set protocol for sending core file
region-size Size of region for exception-time memory pool
spurious-interrupt Crash after a given number of spurious interrupts
Router(config)#exception spurious-interrupt ?
<1-4294967295> Spurious interrupt threshold
有關生成coredump的詳細資訊,請參閱建立核心轉儲。如果由於假中斷而導致效能下降,我們的技術助理中心可能會要求提供此資訊。如果是這種情況,假中斷的數量應該很高且不斷增加,同時還會出現一些資料包丟棄或效能下降。
建立TAC服務請求時要收集的資訊
如果執行上述故障排除步驟後仍需幫助,並且要使用Cisco TAC 建立服務請求(僅供註冊客戶使用),請確保在案例中附加以下資訊,以排查虛假訪問、校準錯誤和虛假中斷故障: |
- 在建立服務請求之前執行的故障排除
- show technical-support輸出(如果可能,在啟用模式下)
- show alignment輸出(如果尚未包括在show technical-support輸出中)
- show log輸出或控制檯捕獲資訊(如果可用)
請將收集到的資料以非壓縮的純文字檔案格式(.txt)附加到您的服務請求。您可使用TAC服務請求工具(僅供註冊客戶使用)將資訊上傳到服務請求,從而將其附加到服務請求中。如果無法訪問服務請求工具,則可透過將相關資訊附加到服務請求中,然後將其傳送到attach@cisco.com ,並在郵件的主題行中註明服務請求號。 註:請勿在收集上述資訊之前手動重新載入路由器或重新啟動路由器,除非需要排除欺騙性訪問、校準錯誤和欺騙性中斷故障,因為這可能導致確定問題根本原因所需的重要資訊丟失。 |
相關資訊