ルータ : Cisco 7500 シリーズ ルータ

割り込みによって CPU 使用率が高くなる場合のトラブルシューティング

2008 年 8 月 26 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 5 月 29 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
割り込みによって CPU 使用率が高くなる場合に考えられる原因
      不適切なスイッチング パス
      CPU によるアライメントの訂正
      ルータ トラフィックの過負荷
      ソフトウェアの不具合
      ルータ上に設定されている音声ポート
      ルータ上のアクティブな Asynchronous Transfer Mode(ATM)インターフェイス
      RP に対する多数の Parallel Express Forwarding(PXF)パント
      CPU プロファイリング
show interfaces switching コマンド
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、割り込みによって CPU 使用率が高くなる場合の理由について説明し、トラブルシューティングのヒントとガイドラインを示しています。

前提条件

要件

このドキュメントを読む前に、『Cisco ルータの CPU 使用率が高い場合のトラブルシューティング』を読むことを推奨いたします。

使用するコンポーネント

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

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

割り込みによって CPU 使用率が高くなる場合に考えられる原因

割り込みレベルで CPU 使用率が高くなる場合は、割り込みレベルで処理されるパケットが主な原因です。ルータのコンソールまたは補助ポートから文字が出力されると、割り込みが発生します。

Universal Asynchronous Receiver/Transmitter(UART; 汎用非同期送受信器)はルータの処理速度に比べると低速なので、(ルータで多数の tty 回線が使用されていない限り)可能性は低いものの、コンソールまたは補助ポートの割り込みによってルータの CPU 使用率が高くなる可能性があります。

割り込みによって CPU 使用率が高くなる理由には、次のようなものかあります。

不適切なスイッチング パス

この項目が問題になっている可能性があれば、次の項目を確認してトラブルシューティングします。

  • ルータで Cisco Express Forwarding が動作しているかどうかを次のようにチェックします。

    • ip cef グローバル設定コマンドの設定を確認します。

    • show ip cef summary コマンドを発行して、Cisco Express Forwarding が有効で、実行中であることを確認します。

    • Cisco Express Forwarding がすべてのインターフェイスのスイッチング パスとして有効になっていることを確認します。この情報は、show cef interfaceshow ip interface の出力に表示されています。Cisco Express Forwarding が設定されていてもインターフェイスで有効になっていない場合、Cisco Express Forwarding では、そのインターフェイスのカプセル化がサポートされていません。Cisco Express Forwarding が動作していることを確認してください。具体的には、show cef not-cef-switched の出力を参照して、パケットが実際に Cisco Express Forwarding を使用してルータでスイッチングされているかどうかをチェックしてください。

    • show cef drop コマンドおよび show interfaces switching コマンド(これは、キャッシュ ミスを探すために使用する隠しコマンドです)を使用して、Cisco Express Forwarding でパケットが廃棄されていないことを確認します。廃棄されている場合は、『CEF のトラブルシューティング ページ』を参照してください。

  • いずれかのインターフェイスに長いアクセス リストが設定されていないかを確認します。

    • 一般的な基本ルールとして、10 行を超えるアクセス リストを長いとみなします。

    • 長いアクセス リストを繰り返し参照すると非常に CPU 負荷が高くなります。NetFlow スイッチングが指定されている場合は、フローがすでにキャッシュにあれば、アクセス リストをチェックする必要がありません。そのため、この場合には、NetFlow スイッチングが有効です。NetFlow スイッチングを有効にするには、ip route-cache flow コマンドを発行します。

    • Cisco Express Forwarding と NetFlow の両方がインターフェイスに設定されている場合は、Cisco Express Forwarding がスイッチングの判断に使用され、NetFlow キャッシュが ACL チェックの高速化とアカウンティングに使用されます。

  • ルータに NetFlow スイッチングが設定されていることを確認します。

    • show ip cache flow コマンドを発行して、統計情報をチェックします。1 秒当たりの新規フローの数に注目してください。

    • Cisco Express Forwarding が有効になっていない場合は、Cisco Express Forwarding を有効にしてスイッチングの判断を高速化します。

    • 長いアクセス リストがない場合は、NetFlow スイッチングを無効にしてみます。

CPU によるアライメントの訂正

アライメント エラーは、読み取りと書き込みのアライメントがずれている場合に発生します。たとえば、2 バイトの偶数倍数ではないメモリ アドレスから 2 バイトを読み取るとアライメント エラーになります。

アライメント エラーは、通常はソフトウェアの不具合によって発生します。このエラーは CPU で訂正されますが、訂正が多くなると、CPU の負荷が高くなります。このタイプのエラーのトラブルシューティングについては、『トラブルシューティング:スプリアス アクセス、アラインメント エラー、スプリアス割り込み』を参照してください。

ルータ トラフィックの過負荷

show interfaces コマンドおよび show interfaces switching(隠し)コマンドの出力には、どのインターフェイスが過負荷になっているかが示されています。これらのコマンドの出力をログ ファイルに保存して後で分析するには、次のステップに従います。

  1. terminal length 0 コマンドを発行します。

  2. show interfaces の出力をチェックします。インターフェイスの負荷とスロットル(throttle)の数を調べます。デフォルトでは、5 分間の負荷の平均値が表示されます。この間隔を変更するには、load-interval seconds コマンドを発行します。seconds には、負荷統計情報の計算にデータが使用される時間長を指定します。30 の倍数を指定してください。

    スロットルは、過負荷になっているルータをよく示しています。スロットルは、ポートの受信側が使用禁止にされた回数を示しています。これらはバッファまたはプロセッサの過負荷によって発生した可能性があります。割り込みレベルの CPU 使用率も高ければ、スロットルはルータのトラフィックが過負荷になっていることを示しています。

  3. show interfaces switching(隠し)コマンドの出力をチェックして、どのような種類のトラフィック(プロトコルおよびスイッチング パス)が過負荷のインターフェイスを通過しているのかを確認します。特定のインターフェイスでトラフィックの過負荷が激しい場合は、ネットワークのトラフィック フローの再設計またはハードウェアのアップグレードを検討してください。

  4. ネットワーク ループがトラフィック過負荷の理由となっている可能性もあります。ネットワーク トポロジを確認してください。

単一のデバイスが極端に高い率でパケットを生成しているためにルータが過負荷になっている可能性がある場合には、過負荷になっているインターフェイスの設定に ip accounting mac-address {input|output} interface 設定コマンドを追加して、そのデバイスの MAC アドレスを特定できます。

show interfaces [ ] mac-accounting コマンドを発行すれば、収集された情報が表示されます。送信元デバイスの MAC アドレスがわかれば、show ip arp コマンドの出力をチェックすれば、それに対応する IP アドレスがわかります。

ソフトウェアの不具合

ルータで稼働している Cisco IOS ソフトウェアのバージョンの不具合が疑われる場合は、Bug Toolkit登録ユーザ専用)を使用して、同様の環境で同様の症状が発生する不具合がないかをチェックします。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

ルータ上に設定されている音声ポート

トラフィックがない場合でも、Channel-Associated Signaling(CAS; チャネル対応シグナリング)は引き続き監視されるので、CPU リソースが使用されます。

ルータ上のアクティブな Asynchronous Transfer Mode(ATM)インターフェイス

トラフィックがない場合でも、ATM インターフェイスからは(ATM 標準に従って)ヌル セルが送出されるので、引き続き CPU リソースが使用されます。

RP に対する多数の Parallel Express Forwarding(PXF)パント

PXF から RP へパントされるパケットが多すぎると、RP が過負荷になる場合があります。show pxf accounting summary コマンドを発行すれば、パントされたパケット量と総着信パケットの量を比較できます。パケットが RP にパントされている理由を調べる場合にも、同じコマンドを使用します。この現象の原因は、ソフトウェアの不具合か、PXF でトラフィックがサポートされていないかのいずれかの可能性があります。

CPU プロファイリング

CPU プロファイリングは、どこで CPU 時間が消費されているかを判別するための、オーバーヘッドの低い方法です。このシステムは、4 ミリ秒ごとにプロセッサの場所をサンプリングすることによって機能します。メモリのロケーションのカウントは、増加します。この CPU 使用率の根本原因は、CPU プロファイリングで判別されます。

次に、CPU プロファイリングを行う手順を示します。CPU プロファイリングは、高 CPU 使用率が発生している場合に実行する必要があります。

注:これらのコマンドはすべて、イネーブル モードの場合に入力される必要があります。

  1. show region の出力をキャプチャして、開始アドレス、終了アドレス、および main:text 領域のサイズを取得します。

  2. show memory statistics の出力をキャプチャして、プロセッサ メモリ内の最大ブロックのサイズをチェックします。

  3. profile task interrupt を実行して、割り込み専用のプロファイリングを設定します。

  4. main:text 領域のサイズと、空きプロセッサ メモリの最大ブロックのサイズを比較してください。理想的には、最大ブロックは main:text より大きい必要があります。

    最大ブロックが main:text サイズより小さい場合は、精度を調整してプロファイリングがプロセッサ メモリのブロックを取得できることを確認します。

    最大ブロックが main:text 領域より大きい場合、精度 4 を使用します。

    最大ブロックが main:text 領域の半分より大きい場合、精度 8 を使用します。

    最大ブロックが main:text 領域の 1/4 より大きい場合、精度 10(16 進数表記による 16)を使用します。

    注:精度は 2 の累乗であり、できるだけ小さく(しかし、4 未満ではない値に)する必要があります。

  5. profile を実行してプロファイリングを開始します。

    Profile <starting address> <ending address> <granularity value>
    

    開始アドレスと終了アドレスは、ステップ 1 で判別されます。

  6. 5 〜 10 分待ちます。

  7. profile stop を実行して、プロファイリングを停止します。

  8. show profile terse の出力をキャプチャします。

  9. unprofile all を実行して、メモリが解放されていることを確認してください。

show interfaces switching コマンド

このコマンドは、インターフェイス上のアクティブなスイッチング パスを確認する際に使用します。Cisco IOS ソフトウェアのスイッチング パスについての詳細は、『スイッチング パスの設定』を参照してください。

次に、1 つのインターフェイスに対する show interfaces switching コマンドの出力例を示します。

RouterA#show interfaces switching  
 Ethernet0            
           Throttle count          0          
         Drops         RP          0         SP          0    
   SPD Flushes       Fast          0        SSE          0    
   SPD Aggress       Fast          0   
  SPD Priority     Inputs          0      Drops          0       
      Protocol       Path    Pkts In   Chars In   Pkts Out  Chars Out          
         Other    Process          0          0        595      35700              
             Cache misses          0                      
                     Fast          0          0          0          0                 
                Auton/SSE          0          0          0          0             
               IP Process          4        456          4        456              
             Cache misses          0                      
                     Fast          0          0          0          0                 
                Auton/SSE          0          0          0          0            
              IPX Process          0          0          2        120              
             Cache misses          0                      
                     Fast          0          0          0          0                 
                Auton/SSE          0          0          0          0  
    Trans. Bridge Process          0          0          0          0              
             Cache misses          0                      
                     Fast         11        660          0          0                 
                Auton/SSE          0          0          0          0        
          DEC MOP Process          0          0         10        770              
             Cache misses          0                      
                     Fast          0          0          0          0                 
                Auton/SSE          0          0          0          0             
              ARP Process          1         60          2        120              
             Cache misses          0                      
                     Fast          0          0          0          0                 
                Auton/SSE          0          0          0          0            
              CDP Process        200      63700        100      31183              
             Cache misses          0                      
                     Fast          0          0          0         0                 
                Auton/SSE          0          0          0          0 

出力には、そのインターフェイスで設定されているすべてのプロトコルのスイッチング パスがリストされるため、ルータを通過しているトラフィックの種類と量が簡単にわかります。次の表に、出力フィールドの説明を示します。

フィールド

定義

プロセス

処理されたパケット。これらはルータ宛てのパケット、またはファースト スイッチング キャッシュ内にエントリがなかったパケットです。

Cache misses

ファースト スイッチング キャッシュ内にエントリがなかったパケット。この宛先(設定されているファースト スイッチングのタイプによってはフロー)の最初のパケットはプロセス交換されます。発信インターフェイスでファースト スイッチングが明示的に無効にされていない限り、後続のパケットはすべてファースト スイッチングで交換されます。

Fast

ファースト スイッチングで交換されたパケット。ファースト スイッチングはデフォルトで有効になっています。

Auton/SSE

自律スイッチング、シリコン スイッチング、または分散スイッチングによって交換されたパケット。スイッチ プロセッサまたはシリコン スイッチ プロセッサ(それぞれ、自律スイッチングまたはシリコン スイッチング用)を備えた Cisco 7000 シリーズ ルータ、または VIP(分散スイッチング用)を備えた Cisco 7500 シリーズ ルータだけで有効です。


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

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


関連情報


Document ID: 41120