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 configure
でmonitor
構成可能変数を設定して、Perforceサービス上で監視を有効にする必要があります。
monitor構成可能変数の有効な値は以下のとおりです。
- 0: サーバプロセスの監視を無効にします。 (デフォルト)
- 1: アクティブなコマンドを監視します
- 2: アクティブなコマンドと休止中の接続を監視します
- 3:
2
と同じですが、初期化に失敗した(Init()でスタック状態になった)接続を含みます - 5:
2
と同じですが、このコマンドにより1秒を超える間ロックされたファイルの一覧を含みます - 10:
5
と同じですが、ロック待機時間を含みます - 25:
10
と同じですが、このコマンドによってロックされたファイルのリストには、どのくらいの間ロックされたかを問わずロックされたファイルが含まれます
構成可能変数monitor
への変更は、サーバに接続するすべての新規p4
プロセスに影響します。 サーバの再起動は不要です。
『Helix Coreサーバ管理者ガイド: 基本』の「プロセスの監視を有効にする」を参照してください。
コマンド構文バリアントには、次の選択肢があります。
-
(
list
レベルアクセス): 現在のプロセス情報を表示するには、p4 monitor show
を使用します。 デフォルトではすべてのプロセスが一覧表示されますが、引数なしでコマンド(例えば、sync
、edit
、submit
)のみが表示されます。 指定された状態のプロセスのみを表示するには、-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 pause
とp4 monitor resume
を使用します。
出力形式
p4 monitor
の出力の各行には、次のフィールドが含まれます。
pid
status
owner
hh:mm:ss
command
[args
]
pid |
UNIX環境におけるプロセスID(またはWindows環境におけるスレッドID)です。 |
status |
以下に示すプロセスに応じて、R、
注意
終了の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、ステータス、所有者、経過時間の次に、ws4
とws5
のワークスペース専用モードによるクライアントワークスペースのロックと、読み取り専用モードのdb.locks
、db.rev
テーブルを含むさまざまなファイルをロックする2つの編集コマンドを出力しています。
休止プロセスの監視を有効にしている場合(構成可能変数monitor
を2に設定)、休止プロセスはstatus
がR
、command
がIDLE
で表示されます。
複数のプロセスを実行するコマンド(例えば、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
アクセス権限を使用して実行する必要があります。
|
プロセスに関連付けられたすべての引数(例えば、 Helixサーバユーザ名は10文字に切り捨てられ、出力行の文字数は80文字に制限されます。 |
|
起動しているHelixサーバアプリケーション(既知の場合)、ホストIPアドレス、およびワークスペース名を含む環境情報を表示します。 |
|
長い形式で、すべての引数が表示されます。ユーザ名やコマンドライン引数のリストは、切り捨てられません。 |
|
ロックされたファイルの情報を表示します。 情報が収集されるのは、 このオプションを使用するのに事前に必要な条件は、サーバを実行するプラットフォームにより異なります。
このオプションと共に |
|
ステータスが |
|
詳細については、「グローバルオプション」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? | ファイル引数にリビジョン範囲を使えるか? | 最低限必要なアクセスレベル |
---|---|---|
使用不可 |
使用不可 |
|
例
|
Helixサーバのプロセス情報(コマンドのみ)を表示します。 |
|
出力行の長さを制限せずに、コマンドと引数を表示します。 |
|
出力行ごとに80文字に制限し、コマンドと引数を表示します。 |
|
プロセス123を終了のためにマークするよう、Perforceサービスに通知します。 |
|
監視テーブルのすべてのエントリを消去します。 |
関連コマンド
監視を行うよう設定する |
|
監視を行わないよう設定する |
|