音声とユニファイド コミュニケーション : Cisco Unified Communications Manager(CallManager)

CallManager サーバ: メモリ リークの問題を解決するために PsList を使用する

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2013 年 9 月 3 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、PsList ユーティリティを使用して Cisco CallManager サーバのメモリ リークの問題を解決する方法について説明します。 Windows オペレーティング システムではパフォーマンス モニタ ユーティリティがサポートされており、管理者はこれを使用して処理 CPU とメモリ使用に関する詳細情報を表示します。 ただし、パフォーマンス モニタ ユーティリティの起動後に開始されたプロセスのメモリ使用は考慮されません。 PsList ではこのギャップが埋まります。

注: PsList は無料ユーティリティです。 SysInternals からダウンロードできます。leavingcisco.com

前提条件

要件

次の項目に関する知識があることが推奨されます。

  • Windows オペレーティング システム

  • Cisco CallManager

  • Windows パフォーマンス モニタ

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco CallManager

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

表記法

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

背景説明

PsList のデフォルト動作では、ローカル システムで現在動作しているすべてのプロセスの CPU 中心の情報が表示されます。 プロセスごとにリストされる情報には、プロセスの実行時刻、カーネル モードとユーザ モードでのプロセス実行時間、OS がプロセスに割り当てた物理メモリ量が含まれます。 コマンドライン スイッチにより、メモリ中心のプロセス情報、スレッド統計、3 種類すべてのデータのいずれかを表示できます。

用途

ユーティリティの形式は次のとおりです。

pslist [-?] [-d] [-m] [-x][-t][-s [n] [-r n]][\\computer [-u username] [-p password]] [name | pid]

それぞれのパラメータについて、次のリストで詳しく説明します。

  • -か。 —出力 値に使用するサポートされたオプションおよび測定単位を表示する。

  • --d—このスイッチでは、システムでアクティブなすべてのスレッドの PsList show 統計が表示され、そのプロセスでスレッドがまとめられます。

  • --m—このスイッチでは、デフォルトの CPU 中心の情報ではなく、PsList show memory を中心とした情報がプロセスごとに表示されます。

  • --x—このスイッチでは、指定したプロセスごとに、CPU、メモリ、スレッドの情報が表示されます。

  • --t—プロセスのツリーが表示されます。

  • --s [n]—タスク マネージャの更新モードと同じようなモードで PsList が動作します。 動作する秒数を任意に指定してこのモードを中断するには、Esc キーを押します。

  • --r n—タスク マネージャ モードの秒単位の更新レートです(デフォルトは 1)。

  • name—システムで動作しているすべてのプロセスをリストする代わりに、指定プロセス名で始まるプロセスに PsList のスキャンを絞り込みます。 たとえば pslist exp では、「exp」で始まるすべてのプロセスの統計が表示されます。 これには Explorer が含まれます。

  • --u—このパラメータはユーザ名を表します。 リモート システムのプロセスを削除するが、実行しているアカウントにリモート システムの管理者権限がない場合は、このコマンド ライン オプションを使用して管理者としてログインする必要があります。 -p オプションを指定してパスワードを含めない場合は、PsList によってパスワードを求められますが、入力したパスワードは画面に表示されません。

  • --p—このパラメータはパスワードを表します。 このオプションにより、コマンド ラインでログイン パスワードを指定できるので、バッチ ファイルから PsList を使用できます。 アカウント名を指定して -p オプションを省略した場合は、PsList によって対話形式でパスワードを求められます。

  • \ \ローカルシステムのためのプロセス 情報を示すかわりにコンピューター、PsList は規定 される NT Windows 2000 システムのための情報を示します。 自分のセキュリティ クレデンシャルではリモート システムからパフォーマンス カウンタ情報を取得できない場合は、リモート システムにログインするためのユーザ名とパスワードを -u スイッチで指定してください。

  • pid—システムで動作しているすべてのプロセスをリストする代わりに、指定したプロセス ID(PID)のプロセスのみに PsList のスキャンを絞り込みます。 たとえば pslist 53 では、PID が 53 であるプロセスの統計が表示されます。

Cisco CallManager サーバにおける PsList の設定

Cisco CallManager サーバで PsList を設定するには、次の手順を実行します。

  1. メモ帳などのアプリケーションでバッチ ファイル(memory.bat)を作成します。 バッチ ファイルの内容は次のとおりです。

    echo %date% %time% >>c:\cron\mem.txt
    c:\dnld\pslist.exe -m >>c:\cron\mem.tx
  2. Cisco CallManager サーバで Task Scheduler サービスを有効にします。

    1. [Start] > [Programs] > [Administrative Tools] > [Services] を選択します。

    2. [Task Scheduler] を右クリックします(図 1 の矢印 A を参照)。

    3. ポップアップ ボックスから [Start] をクリックします(矢印 B を参照)。

      図 1: サービス

      pslist-1.gif

  3. 定期的に実行するようにバッチ ファイルをスケジュールします。

    間隔を 10 分にすることを推奨します。 この間隔は、問題の必要性に従って調整できます。 実行には数秒しかかからないので、負荷は増加しません。

    1. [Start] をクリックして [Settings] にカーソルを合わせ、[Control Panel] をクリックします。

    2. [Scheduled Tasks] をダブルクリックします。

    3. [Next] をクリックします。

    4. [Browse] をクリックします。

    5. ナビゲートして、スケジュールするプログラムを選択します。

      この場合、ディレクトリは cron(図 2 の矢印 A を参照)、プログラムは mem.txt(図 2 の矢印 B を参照)です。

      図 2: スケジュールするプログラムの選択

      pslist-2.gif

    6. [Open] をクリックします。

      注: タスク ウィザードを使用する場合は、[Open advanced properties for this task when I click Finish] をオンにしてから [Finish] をクリックして作業を続けます。

    7. このタスクの名前を入力します。

    8. [Daily] をクリックします。

    9. [Next] をクリックします。

    10. このタスクを開始する日時を選択します。

    11. [Next] をクリックします。

    12. ユーザの名前とパスワードを入力します。 タスクは、そのユーザが開始したものとして実行されます。

    13. [Next] をクリックします。

    14. [Open advanced properties for this task when I click Finish] をオンにしてから [Finish] をクリックし、作業を続けます。

    15. [Schedule] をクリックします。

    16. [Advanced] をクリックします。

    17. [Repeat task] をオンにし、タスクを繰り返す時間(分または時間)を指定します。

    18. [OK] を 2 回クリックします。

  4. 使用量の拡大を待機します。

  5. ログを収集します。 PsList の実行のたびに、次のように出力されます。

    Process memory detail for EVOICE-R16-CM1:
    
    Name                Pid      VM      WS    Priv Priv Pk   Faults   NonP Page
    Idle                  0       0      16       0       0        1      0    0
    System                8    1676     224      24     164   562211      0    0
    SMSS                204    5256     376    1076    2760      886      1    6
    CSRSS               232   30880    2604    1556    1592     2333      7   61
    WINLOGON            256   35580    1296    7084    8800    16883     66   35
    SERVICES            284  127396   89808    4032    6636  6713985    622  122
    ..
    ..
    
    13:15:29.35 

    注: 終了したら、スケジュールしたジョブを無効にしてください。 無効にしないと、ログでディスクがいっぱいになります。

  6. ログを解析してインスタンス番号を各行の先頭に付けるには、pslistmem.pl スクリプトを使用します。

    #!/usr/bin/perl
     $inst=0; #init var to count number of instances
    $tinfo=""; #init var to store date/time info
    while($_ = <STDIN>){
     #if this line contains a timestamp like 11:11:11.11
     if (/(\d+:\d+:\d+.\d+)/){ 
      $inst++;     #increment the instance counter
      $tinfo=$_;   #save time/date to append to all rows of this instance
      next; # skip to next line of input
     }
     #if this line contains a word followed by at least 8 numbers
     if (/((\w)(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+)/){
      tr/\r\n//d; #strip CR LF to keep the date/time on the same line
      print "$inst\t$_\t$tinfo"; # print instance counter, input line, 
       then date/time for this instance
      next; # skip to next line of input
     }

    このスクリプトにより、PsList からの出力の最初のセットでは、すべての行の先頭に番号 1 が付きます。 2 番目のセットでは番号 2 が付きます(図 2 の矢印 A、B、C を参照)。 ヘッダー行は取り除かれます。 このため、PID で並べ替えて、最初の列を使用して行を一時的な順序にすることができます。

    注: この Perl スクリプトを実行するには、ActivePerl などの Perl インタープリタを www.activestate.com からダウンロードする必要があります。 leavingcisco.com

  7. 次の出力が示すように、pslistmam.pl スクリプトを起動します。

    cat mem.txt | pslistmem.pl | sort -k 3 >out.txt

    Mem.txt と out.txt はそれぞれ、pslistmem.pl の入力ファイルと出力ファイルを表します。 出力はプロセス名で並べ替えられます。 出力 ファイルでは(Figure3 を参照して下さい)、1 カラムは付加される一定数です 2 カラムはプロセス名です、3 カラムはプロセス ID、4 カラムです Virtual Memory (VM)です、5 カラムはワーキング セット(WS)、6 カラムですプライベート バイト数であり、7 カラムはプライベート バイト数のピークです。 VM、WS、プライベート バイト カウントの傾向を監視すると、特定のプロセスによるメモリ消費の一般傾向が分かります。

    図 3: PsListMem.pl スクリプトの出力

    /image/gif/paws/66967/pslist-3.gif

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

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


関連情報


Document ID: 66967