目次概要 概要この文書は、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 コマンドによる出力例を示します。
スプリアス アクセス エラーの訂正スプリアス アクセス エラーは、常に Cisco IOS ソフトウェアの不具合が原因です。 この不具合を修正するには、使用中のリリーストレインの最新バージョンにアップグレードします。(たとえば、Cisco IOS ソフトウェア リリース 11.2(14)を使用している場合は、最新の 11.2(x) イメージにアップグレードしてください。) これで問題が解決しない場合、またはルータのアップグレードが不可能な場合には、Cisco TAC に連絡してください。 サービスリクエストをオープンしてスプリアス アクセスを報告する際には、次の情報を添付してください。
アラインメント エラー次は、アラインメント エラーについてのシステム ログ出力の例です。 %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 の出力にあるものだけで、ここには発生件数を示すカウンタがあります。
スプリアス割り込みの原因には、ハードウェアの欠陥による可能性とソフトウェアによる可能性があります。 ほとんどの場合、ルータやスイッチの本来の動作への副作用はありません。 それらは監視目的でカウントされているだけです。 数件のスプリアス割り込みでは CPU 使用率をそれほど増加させることはありません。 ルータやスイッチで発生している症状がカウンタの増加だけで、他はすべて正常に動作している(パケットの廃棄などがない)場合は、スプリアス割り込みは無視してもかまいません。 68000 系プロセッサを使用している Cisco ルータ(Cisco 1000、1600、2500、4000、7000(RP) がこれに該当します)では、スプリアス割り込みがしきい値に達した場合にコアダンプをとるように設定できます。
コアダンプ生成の詳細については、『コア ダンプの作成』を参照してください。 スプリアス割り込みによるパフォーマンス低下の問題の場合は、TAC がこの情報を必要とすることがあります。 これに該当する場合は、スプリアス割り込みの件数が高くてさらに増加していたり、パケットの廃棄やパフォーマンスの低下を伴っているはずです。 TAC サービス リクエストを作成する場合に収集する情報
関連情報 |