簡介
本文旨在說明運行Cisco IOS®軟體的裝置上可能遇到的三種錯誤型別 — 虛假訪問、對齊錯誤和虛假中斷。
如果您的Cisco裝置輸出了show alignment命令,則可以使用Cisco CLI Analyzer顯示潛在問題和修復程式。要使用Cisco CLI Analyzer,您必須是已註冊的客戶,必須登入並啟用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軟體錯誤引起。若要更正此問題,請升級至版本系列中的最新版本(例如,如果您正在運行Cisco IOS軟體版本11.2(14),請升級至最新11.2(x)映像。如果這不能解決問題,或無法升級路由器,請聯絡Cisco TAC。開啟案例報告虛假訪問時,請包括以下內容:
-
show alignment 命令的輸出
-
show tech-support 命令的輸出
-
相關系統日誌
對齊錯誤
以下是校準錯誤的系統日誌輸出示例:
%ALIGN-3-CORRECT: Alignment correction made at 0x60262478 reading/writing 0x60A9FF5C
原因
對齊錯誤是由未對齊的讀取和寫入引起的。例如,記憶體地址不是兩個位元組的偶數倍數的雙位元組讀取是對齊錯誤。軟體錯誤導致對齊錯誤。
驗證對齊錯誤
對齊錯誤在日誌中報告並由路由器記錄。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
有關核心轉儲生成的詳細資訊,請參閱建立核心轉儲。如果由於虛假中斷導致效能下降,我們的技術助理中心可能要求提供此資訊。如果是這種情況,假中斷的數量應該很高且不斷增加,同時還會出現一些丟包或效能降低。
建立TAC服務請求時要收集的資訊
如果您在執行上述故障排除步驟後仍然需要幫助,並且希望通過Cisco TAC建立服務請求(僅限註冊客戶),請確保將以下資訊附加到您的案例中,以便排除虛假訪問、對齊錯誤和虛假中斷故障: |
- 在建立服務請求之前執行的故障排除
- show technical-support output(如果可能,在啟用模式下)
- show alignment輸出(如果未包括在show technical-support輸出中)
- show log輸出或控制檯捕獲(如果可用)
請將收集的資料以非壓縮的純文字檔案格式(.txt)附加到您的服務請求。 您可以使用TAC服務請求工具(僅限註冊客戶)將資訊上傳到服務請求(僅限註冊客戶)。 如果您無法訪問服務請求工具,則可以將相關資訊附加到您的服務請求中,方法是將您的服務請求編號傳送到attach@cisco.com,並在消息的主題行中註明您的服務請求編號。 註:在收集上述資訊之前,請不要手動重新載入或重新啟動路由器,除非需要排除虛假訪問、對齊錯誤和虛假中斷故障,因為這樣可能會導致確定問題根本原因所需的重要資訊丟失。 |
相關資訊