Helix Core P4コマンドリファレンス (2019.1)

p4 monitor

Perforceのプロセス情報を表示して長時間実行されるタスクを制御します。

構文

p4 [g-opts] monitor show [-a -l -e -L -s R | T | P | B | F | I ]
p4 [g-opts] monitor terminate id
p4 [g-opts] monitor clear [id | all]
p4 [g-opts] monitor pause id
p4 [g-opts] monitor resume id

説明

p4 monitorによってシステム管理者は、Helixサーバマシン上でどのようなHelixサーバ関連プロセスが実行中かを監視することができます。 絶えず更新される専用テーブルを使用してプロセスを追跡します。 サーバパフォーマンスに多少の影響を及ぼす可能性があります。

p4 monitorを使用するには、p4 configuremonitor構成可能変数を設定して、Perforceサービス上で監視を有効にする必要があります。

monitor構成可能変数の有効な値は以下のとおりです。

  • 0: サーバプロセスの監視を無効にします。 (デフォルト)
  • 1: アクティブなコマンドを監視します
  • 2: アクティブなコマンドと休止中の接続を監視します
  • 3: 2と同じですが、初期化に失敗した(Init()でスタック状態になった)接続を含みます
  • 5: 2と同じですが、このコマンドにより1秒を超える間ロックされたファイルの一覧を含みます
  • 10: 5と同じですが、ロック待機時間を含みます
  • 25: 10と同じですが、このコマンドによってロックされたファイルのリストには、どのくらいの間ロックされたかを問わずロックされたファイルが含まれます

構成可能変数monitorへの変更は、サーバに接続するすべての新規p4プロセスに影響します。 サーバの再起動は不要です。

Helix Coreサーバ管理者ガイド: 基本』の「プロセスの監視を有効にする」を参照してください。

コマンド構文バリアントには、次の選択肢があります。

  • (listレベルアクセス): 現在のプロセス情報を表示するには、 p4 monitor showを使用します。 デフォルトではすべてのプロセスが一覧表示されますが、引数なしでコマンド(例えば、synceditsubmit)のみが表示されます。 指定された状態のプロセスのみを表示するには、-s statusを使用します。

  • (superレベルアクセス): それぞれのコマンドに関連付けられた引数のリストを表示するには、-a (arguments)オプションまたは-l (long)オプションを使用します。 ユーザ環境からの追加情報が必要な場合は、-e (environment)オプションを使用します。-Lオプションを使用すると、ロックされたファイルを表示できます。
  • (オペレータまたはsuperレベルアクセス): プロセスを終了させるためにマークするには、p4 monitor terminate idを使用します。 このコマンドを実行するユーザは、オペレータとして実行するか、superレベルのアクセス権限を使用して実行する必要があります。

    プロセスが少なくとも10秒間実行中でない限り、p4 monitor terminateコマンドはプロセスに終了のためのマークを付けません。 p4 obliterateなど、一部のコマンドは終了させることができません。

    プロセスの一覧の更新頻度を制御するには、db.monitor.intervalを参照してください。この構成可能変数はサポートナレッジベースの記事「ハングしたHelixサーバの修復」でも説明されています。

  • (オペレータまたはsuperレベルアクセス): 監視テーブルからエントリを消去するには、p4 monitor clear idを使用します。 p4 monitor clear allを実行すれば、テーブル全体を消去することができます。 これらのコマンドの実行には、super権限が必要です。 (サーバ側において早いタイミングでコマンドが終了すると、誤って実行中と表示される場合があります。 このようなプロセスは、p4 monitor clearを使用して消去できます。)

    実行中と示されたプロセスは、たとえp4 monitor clearで監視テーブルから消去されたとしても、終了するまで実行し続けます。

  • (オペレータまたはsuperレベルアクセス): 次のタスクの実行に時間がかる場合にこれらのタスクを制御するには、p4 monitor pausep4 monitor resumeを使用します。

出力形式

p4 monitorの出力の各行には、次のフィールドが含まれます。

pid status owner hh:mm:ss command [args]

pid

UNIX環境におけるプロセスID(またはWindows環境におけるスレッドID)です。

status

以下に示すプロセスに応じて、RTPBF、またはIを示します。

  • 実行の場合はR
  • 中断の場合はT
  • 一時停止の場合はP
  • バックグラウンドの場合はB
  • 終了の場合はF
  • アイドルの場合はIが示されます。
注意

終了のFとバックグラウンドで実行のBは、レプリカサーバでのみ発生します。

所有者

そのコマンドを実行したHelixサーバユーザ名です。

hh:mm:ss

コマンドを実行してから経過した時間を示します。

command [args]

Perforceサービスが受信したコマンドと引数です。

例えば、p4 monitor show -Lコマンドの次のような出力では、ロックされたファイルについての情報が次のように表示されます。

8764 R user 00:00:00 edit
      [server.locks/clients/88,d/ws4(W),db.locks(R),db.rev(R)]
8766 R user 00:00:00 edit
      [server.locks/clients/89,d/ws5(W),db.locks(R),db.rev(R)]
8768 R user 00:00:00 monitor

pid、ステータス、所有者、経過時間の次に、ws4ws5のワークスペース専用モードによるクライアントワークスペースのロックと、読み取り専用モードのdb.locksdb.revテーブルを含むさまざまなファイルをロックする2つの編集コマンドを出力しています。

休止プロセスの監視を有効にしている場合(構成可能変数monitorを2に設定)、休止プロセスはstatusRcommandIDLEで表示されます。

複数のプロセスを実行するコマンド(例えば、p4 submitなど)があります。 例えば、dm_CommitSubmitまたはdm_SubmitChangeが、p4 submitコマンドの2つの独立したフェーズとしてp4 monitorの出力に表示されることがあります。

レプリカ用にプルスレッド情報を取得する

監視機能を有効にした状態でレプリカを実行しており、監視テーブルをディスク固有として設定していない場合は、次のコマンドを実行することでプルスレッドが実行している内容の詳細を取得することができます。 (monitor.lsofを設定することに気をつけてください。)

$ p4 monitor show -sB -la -L

コマンドの出力は次のようになります。

31701 B uservice-edge3 00:07:24 pull sleeping 1000 ms
    [server.locks/replica/49,d/pull(W)]

オプション

次のオプションは、オペレータとして実行するか、superアクセス権限を使用して実行する必要があります。

-a

プロセスに関連付けられたすべての引数(例えば、edit file.csync -f //depot/src/...など).

Helixサーバユーザ名は10文字に切り捨てられ、出力行の文字数は80文字に制限されます。

-e

起動しているHelixサーバアプリケーション(既知の場合)、ホストIPアドレス、およびワークスペース名を含む環境情報を表示します。

-l

長い形式で、すべての引数が表示されます。ユーザ名やコマンドライン引数のリストは、切り捨てられません。

-L

ロックされたファイルの情報を表示します。 情報が収集されるのは、p4 monitorコマンドが実行されている期間のみで、その後は継続しません。

このオプションを使用するのに事前に必要な条件は、サーバを実行するプラットフォームにより異なります。

  • Unixプラットフォームでは、次の値に続けてmonitor.lsof構成可能変数を設定する必要があります。

    $ path/lsof -F pln

    pathの値は、お使いのUnixバージョンによって異なります。 例えば、/usr/bin/lsofのようになります。

    環境によっては、monitor.lsofが機能しない場合があります。お使いのLinuxマシンがlsofに対応していない場合や、lsofのバージョンがHelixサーバでは機能しない場合、あるいはセキュリティ上の理由で管理者がlsofコマンドの実行を許可しない場合などです。 該当する場合でも、次に示す構成可能変数monitorを設定することで、ロックされたファイルについての情報を取得することができます。

    注意

    Microsoft Windowsには作業状態のファイルを一覧表示するlsofユーティリティが搭載されていないため、Windowsシステムでは51025以外の値を使用することをお勧めします。

このオプションと共に-z tagオプションを使用することができます。 その場合、p4 monitor showコマンドは、プロセスがロックされた各ファイルに対して1つずつlockinfoタグを返します。

-s status

ステータスがR(実行)、T(終了)、P(一時停止)、B(バックグラウンドで実行)、F(完了)、またはI(休止中)のプロセスのみを表示します。

g-opts

詳細については、「グローバルオプション」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか? ファイル引数にリビジョン範囲を使えるか? 最低限必要なアクセスレベル

使用不可

使用不可

list, super

p4 monitor show

Helixサーバのプロセス情報(コマンドのみ)を表示します。 list権限のみが必要です。

p4 monitor show -l

出力行の長さを制限せずに、コマンドと引数を表示します。 super権限が必要です。

p4 monitor show -a

出力行ごとに80文字に制限し、コマンドと引数を表示します。 super権限が必要です。

p4 monitor terminate 123

プロセス123を終了のためにマークするよう、Perforceサービスに通知します。 super権限が必要です。

p4 monitor clear all

監視テーブルのすべてのエントリを消去します。 super権限が必要です。

関連コマンド

監視を行うよう設定する

p4 configure set monitor=1

監視を行わないよう設定する

p4 configure set monitor=0