本檔案將說明您可以在Cisco IOS®軟體中啟用核心轉儲的各種選項。
注意:可能很難獲得核心轉儲。只有有權訪問原始碼和詳細記憶體對映的思科技術人員必須嘗試解釋核心轉儲。在許多平台上,使用crashinfo功能可以使核心轉儲變得沒有必要。有關詳細資訊,請參閱從Crashinfo檔案檢索資訊。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
Cisco IOS軟體版本12.0及更新版本
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
路由器崩潰時,請記得獲取路由器整個記憶體內容的副本,稱為核心轉儲。您的技術支援代表使用核心轉儲來確定崩潰的原因。路由器在重新載入之前將記憶體內容寫入伺服器。並非所有崩潰都會產生核心轉儲。有關詳細資訊,請參閱崩潰型別。
路由器嘗試轉儲核心時,請始終捕獲控制檯日誌。控制檯日誌提供有關崩潰的資訊。此外,ROM Monitor(ROMMON)通常會在發生故障時將資訊列印到控制檯(並且只列印到控制檯)。
注意:核心轉儲對於解決大多數崩潰案例不是必需的。當路由器在網路中工作時建立核心轉儲可能會中斷網路運行。僅在技術支援代表的指導下使用本文檔中的命令。
設定路由器以生成核心轉儲有四種基本方法:
透過檔案傳輸通訊協定(FTP)
通過遠端複製協定(RCP)
通過快閃記憶體磁碟
透過簡單式檔案傳輸通訊協定(TFTP)
以下每種方法都使用以下配置命令:
exception region-size size
此命令指定異常時間記憶體池的區域大小。例外時間記憶體池用於防止進程記憶體損壞。size引數以位元組表示,您可以配置從1024到65536位元組的大小。
exception core-file filename [compress]
此命令指定核心轉儲檔案的名稱,而不是預設名稱。要恢復為預設名稱,請使用此命令的no形式。
如需本文檔中命令的詳細資訊,請參閱命令參考工具(僅限註冊客戶)。
當處理器記憶體池損壞時,使用exception region-size命令定義少量記憶體用作回退池。這有助於防止核心轉儲過程中出現記憶體故障。size引數以位元組表示,可以配置從1024到65536位元組的大小,預設值為16384位元組。將exception region-size配置為65536位元組,以增加成功核心轉儲的機會。
預設情況下,處理器記憶體核心轉儲會寫入名為「hostname-core」的檔案,其中hostname是hostname配置命令定義的路由器名稱。如果路由器具有輸入/輸出(I/O)記憶體(例如Cisco 7200),還可以建立I/O記憶體核心轉儲,將其寫入檔案「hostname-coreiomem」。
使用exception core-file命令覆蓋預設核心轉儲檔名。如果檔案伺服器具有DOS FAT檔案系統,請不要指定長度超過六個字元的檔名。例如,如果使用「exception core-file foobar」配置路由器,則核心轉儲的處理器記憶體名稱為「foobar」,I/O記憶體轉儲的名稱為「foobario」(足以提示您有一個I/O記憶體轉儲)。
確保檔案伺服器上有足夠的磁碟空間來容納多個完整的核心轉儲。您可以使用compress選項壓縮核心轉儲檔案。
附註: 將核心轉儲檔案寫入快閃記憶體磁碟時自動應用壓縮。如果使用RCP,則不支援compress選項。
注意:建議使用檔案傳輸協定(FTP)來配置核心轉儲。
要使用FTP為核心轉儲配置路由器,請使用以下命令:
ip ftp username username — 此命令為檔案傳輸協定(FTP)連線配置使用者名稱。若要將路由器設定為嘗試匿名FTP,請使用此命令的no形式。
ip ftp password password — 此命令配置FTP連線的密碼。
exception protocol ftp — 此命令配置用於核心轉儲FTP的協定。
exception region-size 65536 — 此命令配置區域大小。
exception dump ip-address — 此命令配置路由器在出現崩潰時向其傳送核心轉儲的伺服器的ip地址。
注意:為了避免網路擁塞,思科強烈建議您直接將路由器連線到FTP伺服器,無需中間跳。如果必須經過一個或多個中間躍點,可能需要使用ip ftp source-interface命令來指定用於訪問FTP伺服器的介面。如需詳細資訊,請參閱設定路由器以使用FTP連線。
如果您沒有配置使用者名稱和密碼,路由器將嘗試匿名FTP。
當思科技術支援代表請求您提供核心轉儲檔案時,您可以通過匿名FTP將核心轉儲檔案傳送給思科。FTP伺服器為ftp-sj.cisco.com,目錄為/incoming。
注意:/incoming目錄不可見。
確保將傳輸模式設定為二進位制。如果檔案尚未壓縮,則使用通用壓縮實用程式(例如gzip或zip)對其進行壓縮。
此外,請確保包含crashinfo檔案(如果可用)以及核心轉儲。如果硬體或軟體支援此功能,則crashinfo檔案可用。有關如何執行此操作的說明,請參閱從Crashinfo檔案檢索資訊。
請確保FTP首先運作。使用以下範例:
c7500#copy running-config ftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
要使用RCP為核心轉儲配置路由器,請使用以下命令:
ip rcmd remote-username username — 此命令配置遠端使用者名稱,以便在通過遠端複製協定(RCP)請求遠端複製時使用。
exception protocol rcp — 此命令將用於核心轉儲的協定配置為RCP。
exception region-size 65536 — 此命令配置區域大小。
exception dump ip-address
如果尚未配置使用者名稱,路由器會將其主機名用作RCP的使用者名稱。
注意:為了避免網路擁塞,思科強烈建議您直接將路由器連線到RCP伺服器,無需中間跳。如果必須經過一個或多個中間跳,請使用ip rcmd source-interface命令指定用於訪問RCP伺服器的介面。如需詳細資訊,請參閱將路由器設定為使用rsh和rcp。
確保RCP首先工作。使用以下範例:
c7500#copy running-config rcp: Address or name of remote host []? 172.18.125.3 Destination username [c7500]? Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
某些路由器平台支援閃存檔作為線性快閃記憶體或PCMCIA快閃記憶體卡的替代品。這些快閃記憶體磁碟儲存容量大,因此它們是捕獲核心轉儲的良好介質。有關支援快閃記憶體磁碟的路由器平台和Cisco IOS軟體版本的資訊,請參閱Cisco IOS發行說明。
注意:捕獲快閃記憶體磁碟中的核心轉儲時,必須確保快閃記憶體磁碟的儲存容量大於導致核心轉儲的DRAM記憶體。例如,如果您的DRAM記憶體大小為128 MB,則快閃記憶體磁碟的儲存容量必須超過128 MB。需要更大的快閃記憶體才能正確獲取核心轉儲。如果閃存檔記憶體不足,則不會建立核心轉儲。
要使用快閃記憶體磁碟為核心轉儲配置路由器,請使用以下命令:
exception flash procmem|iomem|all device_name [:partition_number] !--- This command uses a Flash disk to configure the router for a core dump.
show flash all EXEC命令列出可用於exception flash命令的裝置。
由於大多數TFTP應用的限制,路由器僅轉儲核心檔案的前16 MB。因此,如果路由器的主記憶體大於16 MB,請不要使用TFTP。如需詳細資訊,請參閱Cisco IOS TFTP使用者端無法傳輸大小大於16MB的檔案。
要使用TFTP為核心轉儲配置路由器,請使用以下命令:
exception protocol tftp — 此命令將TFTP配置為核心轉儲的協定。
exception region-size 65536
exception dump ip-address
TFTP是例外通訊協定的預設通訊協定。
注意:為了避免網路擁塞,思科強烈建議您直接將路由器連線到TFTP伺服器,沒有中間跳。如果必須經過一個或多個中間跳,請使用ip tftp source-interface命令指定用於訪問TFTP伺服器的介面。
根據使用的TFTP伺服器,您可能需要建立具有適當許可權的空目標檔案,然後路由器才能寫入這些檔案。
確保TFTP首先工作。使用以下範例:
c7500#copy running-config tftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? ! 2781 bytes copied in 0.944 secs
除基本設定部分中的命令外,還可使用本節中的配置命令。
為了調試某些記憶體問題,可以使路由器建立核心轉儲,並在某些記憶體大小引數發生違規時重新啟動。使用以下exception memory命令可觸發核心轉儲:
exception memory minimum size — 如果空閒處理器記憶體量減少至低於配置的閾值,此命令將強制崩潰。
exception memory fragment size — 如果Cisco IOS軟體無法分配大於所配置閾值的連續處理器記憶體塊,此命令將強制崩潰。
size引數以位元組表示,預設情況下每60秒檢查一次。
這些命令僅在滿足配置條件時導致路由器重新啟動。如果您還配置了exception dump或exception flash,則路由器會先建立核心轉儲。這些命令有助於診斷記憶體洩漏。
在某些情況下,技術支援代表會請求您在配置核心轉儲時啟用debug sanity。debug sanity命令在大多數思科IOS軟體版本中是隱藏命令,有時是調試記憶體損壞(特別是I/O記憶體損壞)所必需的。啟用debug sanity時,系統將對每個分配的緩衝區運行健全性檢查,並在釋放緩衝區時再次運行健全性檢查。
必須在特權EXEC模式(或啟用模式)下發出debug sanity命令。 雖然此命令使用一些CPU容量,但debug sanity不會顯著影響路由器的功能。與其他debug命令一樣,debug sanity不會儲存在配置中,因此無法在系統重新啟動後繼續運行。
並非所有型別的崩潰都需要您啟用debug sanity。僅當技術支援代表請求您啟用此命令時,才使用debug sanity。
要禁用健全性檢查,請使用undebug sanity特權EXEC命令。
配置核心轉儲路由器後,請測試設定。
Cisco IOS軟體在特殊的EXEC模式(或啟用模式)下提供特殊的write core命令,使路由器無需重新載入即可產生核心轉儲。
如果成功,則核心轉儲檔案為各個儲存器區域的大小。請記住,整個記憶體區域是轉儲的,而不僅僅是正在使用的記憶體。
write core命令在路由器出現故障但未崩潰的情況下也很有用。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
24-Jun-2008 |
初始版本 |