Cisco IOS と NX-OS ソフトウェア : Cisco IOS ソフトウェア リリース 12.0 メインライン

トラブルシューティング:スプリアス アクセス、アラインメント エラー、スプリアス割り込み

2004 年 9 月 14 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 8 月 2 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
スプリアス アクセス
      原因
      Cisco IOS ソフトウェアの対応
      スプリアス アクセス エラーの検証
      スプリアス アクセス エラーの訂正
アラインメント エラー
      原因
      アラインメント エラーの検証
      アラインメント エラーの訂正
スプリアス割り込み
TAC サービス リクエストを作成する場合に収集する情報
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書は、Cisco IOS(R) ソフトウェアが稼動しているデバイスで発生する可能性のある 3 種類のエラー(スプリアス アクセス、アラインメント エラー、スプリアス割り込み)の説明を目的としています。

ご使用のシスコ デバイスからサポートされているイネーブル モードでの show alignment コマンドの出力データがあれば、アウトプットインタープリタ を使用して今後予想される障害や修正を表示できます。アウトプットインタープリタを使用するには、CCO 登録ユーザとしてログインしている必要があります。

一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

前提条件

要件

この文書に関する特別な要件はありません。

使用するコンポーネント

この文書は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

表記法

文書表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

スプリアス アクセス

スプリアス アクセスとは、制限されたロケーションのメモリへの 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 ソフトウェア コードは、これが可能なプラットフォームでは、不正なアクセスに対して 0 の値を返し、イベントを記録します。 プラットフォームでこれがサポートされていない場合、ルータは SegV エラーを発生させクラッシュします。 スプリアス アクセスはすべて正当な操作でないため、ソフトウェアの不具合につなかる可能性があります。

スプリアス アクセス エラーの検証

Cisco IOS ソフトウェアは、可能であれば、スプリアス アクセスのカウントと記録を行います。 この情報は、show alignment コマンドで参照できます。 スプリアス アクセスの原因と修正を判別するには、トレースバック情報が必要です。

注:show alignment コマンドは隠しコマンドであり、文書では説明されていません。 さらに、このコマンドはすべてのプラットフォームでサポートされているわけではなく、Reduced Instruction Set Computing(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
  

原因

アラインメント エラーは、読み込みおよび書き込み時のアラインメントの誤りによって発生します。 たとえば、メモリ アドレスが 2 バイト の偶数倍数でない箇所で 2 バイトの読み込みを行うとアラインメント エラーが発生します。 アラインメント エラーの原因は、ソフトウェアの不具合です。

アラインメント エラーの検証

アラインメント エラーはログの中で報告され、ルータにより記録されます。 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 使用率をそれほど増加させることはありません。 ルータやスイッチで発生している症状がカウンタの増加だけで、他はすべて正常に動作している(パケットの廃棄などがない)場合は、スプリアス割り込みは無視してもかまいません。

68000 系プロセッサを使用している Cisco ルータ(Cisco 1000、1600、2500、4000、7000(RP) がこれに該当します)では、スプリアス割り込みがしきい値に達した場合にコアダンプをとるように設定できます。

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 がこの情報を必要とすることがあります。 これに該当する場合は、スプリアス割り込みの件数が高くてさらに増加していたり、パケットの廃棄やパフォーマンスの低下を伴っているはずです。

TAC サービス リクエストを作成する場合に収集する情報

上記のトラブルシューティング手順を実行した後も、依然としてサポートが必要で、Cisco TAC でサービス リクエストを作成する登録ユーザのみ)場合、スプリアス アクセス、アラインメント エラー、スプリアス割り込みのトラブルシューティングのためのサービスリクエストには、必ず次の情報を添付してください。

  • サービスリクエストを作成する前に実行したトラブルシューティング

  • show technical-support の出力(可能であればイネーブル モードで)

  • show alignment の出力(show technical-support の出力に含まれていない場合)

  • show log 出力、またはコンソールのキャプチャ(可能であれば)

収集したデータは、非圧縮プレーン テキスト形式(.txt)でサービス リクエストに添付してください。 情報をサービス リクエストに添付するには、TAC Service Request Tool登録ユーザのみ)を使用してアップロードします。 TAC Service Request Tool にアクセスできない場合は、メッセージの件名の行にお客様のサービス リクエスト番号を記入し、attach@cisco.com にメッセージを送信すると、お客様のサービス リクエストに関連情報を添付できます。

一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

注:バス スプリアス アクセス、アラインメント エラー、スプリアス割り込みのトラブルシューティングに必要でない限り、上記の情報を収集する前にルータを手作業でリロードしたり、電源のオフ/オンを行わないようにしてください。これを行うと、問題の原因の判断に必要な重要な情報が失われる可能性があります。 


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 15103