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

EXEC および仮想 EXEC プロセスでの CPU 高使用率

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


概要

このドキュメントでは、EXEC および仮想 EXEC プロセスの概要と、これらのプロセスでの CPU 高使用率に関するトラブルシューティングについて説明しています。



前提条件

要件

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



使用するコンポーネント

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

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



表記法

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



EXEC および仮想 EXEC プロセスとは

Cisco IOS® ソフトウェアでの Exec プロセスは、ルータの TTY 回線(コンソール、補助、非同期)での通信を受け持っています。仮想 Exec プロセスが受け持つのは VTY 回線(Telnet セッション)です。

Exec および仮想 Exec プロセスは優先順位が中程度のプロセスなので、より優先順位の高い(High または Critical)のプロセスがあると、優先順位がより高いプロセスが CPU リソースを獲得します。

router#show process | i CPU|Exec 
CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0% 
 PID QTy       PC Runtime (ms)    Invoked   uSecs    Stacks TTY Process 
  22 M*         0         9644       1733    5564 9732/12000  0 Exec 
  46 ME  80468980           28          6    466610520/12000 66 Virtual Exec 

このコマンドの出力についての詳細は、「show processes コマンド」を参照してください。



EXEC および仮想 EXEC プロセスが CPU 使用率を高める原因

これらのセッションで大量のデータが送受信されると、Exec プロセスによる CPU 使用率が高まります。

これらの回線では、ルータが単に 1 文字を送信する場合でも、CPU リソースが使用されてしまうことが原因です。

  • コンソール(Exec)の場合、ルータでは 1 文字ごとに割り込み使用して転送が行われます。

    コンソールの割り込みは、show stacks コマンド出力で確認できます。

    router#show stacks 
         Minimum process stacks: 
         Free/Size   Name 
         11516/12000  Router Init 
         9404/12000  Init 
         5520/6000   AIM_MIB_CREATION 
         5448/6000   RADIUS INITCONFIG 
         9728/12000  Virtual Exec 
         Interrupt level stacks: 
         Level    Called Unused/Size  Name 
         1    23035463   7008/9000  Network interfaces 
         2           0   9000/9000  Timebase Reference Interrupt 
         3           0   9000/9000  PA Management Int Handler 
         6        9791   8892/9000  16552 Con/Aux Interrupt 
         7  1334963882   8920/9000  MPC860 TIMER INTERRUPT 
    
    
  • VTY 回線(仮想 Exec)の場合、Telnet セッションは TCP パケットを作成し、文字を Telnet クライアントに送信する必要があります。



EXEC プロセスでの CPU 高使用率に関するトラブルシューティング

次のリストでは、Exec プロセスで CPU 使用率が高くなる理由を説明しています。

  • コンソール ポートから過剰なデータが送信されている。

    ルータによって作成される過剰なコンソール メッセージが原因となっている可能性があります。

    1. show debugging コマンドで、ルータで何らかのデバッグが開始されているかどうかを調べます。

    2. ルータにログオンするコンソールをディセーブルにします(nologging console)。

    3. コンソールに長い出力が表示されているかどうかを確認します(たとえば、show tech-support または show memory)。

  • Cisco IOS ソフトウェアに不具合がある。

    Bug Toolkit登録 ユーザのみ)を使用して、該当する Cisco IOS ソフトウェア リリースで、同じ症状が出る不具合を調べてください。

  • exec コマンドが非同期回線と補助回線に対して設定されている。

    • 回線に発信トラフィックのみが存在する場合、この回線用の Exec プロセスを無効化する必要があります。この回線に接続されたデバイス(モデムなど)から不要なデータが送信された場合に、この回線で Exec プロセスが開始されるためです。

    • ルータがターミナル サーバとして(他のデバイス コンソールへのリバース Telnet に)使用されている場合、これらの他のデバイスのコンソールに接続されている回線に no exec を設定することが推奨されます。こうしないと、コンソールから戻されるデータにより Exec プロセスが開始され、CPU リソースが使用されてしまいます。



仮想 EXEC プロセスでの CPU 高使用率に関するトラブルシューティング

次のリストでは、仮想 Exec プロセスで CPU 使用率が高くなる理由を説明しています。

  • Cisco IOS ソフトウェアの不具合

    Bug Toolkit登録 ユーザのみ)を使用して、お使いの Cisco IOS ソフトウェア リリースで、同じ症状が出る不具合を調べてください。

  • Telnet セッションで過剰なデータが送信されています。

    Virtual Exec プロセスで CPU 使用率が高くなる最も一般的な理由は、ルータから Telnet セッションに過剰なデータが送信されることです。

    これが発生する可能性があるのは、show tech-supportshow memory など、大量の出力が出されるコマンドが Telnet セッションで実行される場合です。

    各 VTY セッションで転送されるデータの総量は、show tcp コマンドで確認できます。

    router#show tcp vty 0
     
    
    tty66, virtual tty from host 10.48.77.64 
    Connection state is ESTAB, I/O status: 1, unread input bytes: 1 
    Local host: 10.48.77.27, Local port: 23 
    Foreign host: 10.48.77.64, Foreign port: 11006 
    
    ........ 
    
    Datagrams (max data segment is 1460 bytes): 
    Rcvd: 525 (out of order: 0), with data: 53, total data bytes: 87 
    Sent: 366 (retransmit: 257, fastretransmit: 0), with data: 356, total data bytes: 
    158187 
    
  • 膨大な Telnet セッションが生じると、仮想 Exec プロセスにより CPU 使用率が高くなります。膨大な Telnet セッションをクリアするには、多くの場合、デバイスをリロードする必要があります。膨大な Telnet セッションをクリアするもう 1 つの方法は、TCP プロセスをクリアすることです。TCP プロセスは、次の出力のように、show tcp brief コマンドで特定できます。

Router#show tcp brief
TCB       Local Address           Foreign Address        (state)
02FA62D0  172.16.152.75.23        dhcp-171-69-104-.3013  ESTAB

上記の出力例では、膨大な Telnet セッションをクリアするために、clear tcp tcb 0x02fa62d0コマンドで TCP プロセス 02FA62D0 をクリアする必要があります。




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

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


関連情報


Document ID: 41100