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 realtime [ -F -T ]
説明
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
オプションを使用します。 -
operator ユーザまたは
super
ユーザの場合: プロセスを終了させるためにマークするには、p4 monitor terminate id
を使用します。このコマンドを実行するユーザは、オペレータとして実行するか、super
レベルの アクセス権限を使用して実行する必要があります。プロセスが少なくとも10秒間実行中でない限り、
p4 monitor terminate
コマンドはプロセスに終了のためのマークを付けません。p4 obliterate
など、一部のコマンドは終了させることができません。プロセスの一覧の更新頻度を制御するには、
db.monitor.interval
を参照してください。 この構成可能変数は、サポートナレッジベースの記事「ハングしたHelixサーバの修復」でも 説明されています。 -
operator ユーザまたは
super
ユーザの場合: サーバ側において早いタイミングでコマンドが終了すると、 誤って実行中と表示される場合があります。 このようなプロセスは、p4 monitor clear
を使用して消去できます。super
レベルのアクセス権を持っているユーザの場合:- 監視テーブルからエントリを削除する場合は、
p4 monitor clear id
コマンドを使用します - テーブル全体のデータを消去する場合は、
p4 monitor clear all
コマンドを使用します
実行中と示されたプロセスは、たとえ
p4 monitor clear
で監視テーブルから消去されたとしても、 終了するまで実行し続けます。 - 監視テーブルからエントリを削除する場合は、
-
operator ユーザまたは
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は、 レプリカサーバでのみ発生します。 |
owner |
そのコマンドを実行した 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)]
p4 monitor realtime
リアルタイムのパフォーマンスカウンタが表示されます(カウンタがrt.monitorfile構成可能変数を使用して設定されている場合)。例えば、マスターサーバから大規模なトランザクションを複製する際に、複製処理が進行しているかどうかを判断することができます(この場合、rpl.track.behind構成可能変数の値を「1
」または「2
」に設定する必要があります)。
p4 monitor realtime options
次のオプションは、オペレータとして実行するか、super
アクセス権限を使用して
実行する必要があります。
-F
|
フィルタ式に一致するパフォーマンスカウンタだけが一覧表示されます。このフィルタ式の構文は、ジョブビューで使用される構文に似ています。この構文を使用して、上記リストに示したフィールドの内容が評価されます。フィルタリングでは、大文字と小文字が区別されます。 例: |
|
指定したフィールドだけが返されます。複数のフィード名を指定する場合は、コンマまたはスペースを区切り文字として使用します。 例: |
コマンドラインで以下のように指定すると、パフォーマンスカウンタも読み取ることができます。
-
p4d -r P4ROOT --show-realtime
詳細については、「Helix Core Sever (p4d)リファレンス」を参照してください。 -
Helix Core C/C++ API開発者ガイドの
MonItems
で外部ツールを使用する
リアルタイムのパフォーマンスカウンタは次のとおりです。
カウンタ |
説明 |
---|---|
rtv.db.ckp.active
|
チェックポイントの処理が進行中であるかどうかを示します。 |
rtv.db.ckp.records
|
進行中のチェックポイントに読み込まれたレコードの数。チェックポイント処理が完了すると、この数が「0 」になります。 |
rtv.db.io.records
|
データベースの入出力(読み取り、書き込み、削除)の実行カウンタ。 このカウンタは、パフォーマンスに影響する場合があります。
このカウンタを有効にするには、db.rt.io 構成可能変数の値を「1 」に設定します。
|
rtv.db.lockwait
|
ロックを待機しているコマンド。 特定の時点でロックを待機しているほとんどのコマンドの 最高点が含まれます。 |
rtv.rpl.behind.bytes
|
アップストリームサーバからまだ送信されていないジャーナルの
バイトとして表示される複製の遅延。
rpl.track.behind構成可能変数の値を「 1 」以上に設定すると、
このカウンタが有効になります。
rpl.track.behind.interval構成可能変数を使用して、
p4 pullコマンド実行中の更新頻度を調整することができます。
|
rtv.rpl.behind.journals
|
アップストリームサーバからまだ送信されていない
ローテーション済みジャーナルとして表示される複製の遅延。
関連する構成可能変数については、rtv.rpl.behind.bytes を参照してください。
|
rtv.svr.sessions.active
|
クライアントからの現在の接続。 特定の時点におけるほとんどの接続の最高点が含まれます。 |
rtv.svr.sessions.total
|
クライアント接続の実行カウント。 |
オプション
次のオプションは、オペレータとして実行するか、super
アクセス権限を使用して
実行する必要があります。
|
プロセスに関連付けられたすべての引数(例えば、
Helixサーバユーザ名は10文字に切り捨てられ、 出力行の文字数は80文字に制限されます。 |
|
起動しているHelixサーバアプリケーション(既知の場合)、ホストIPアドレス、 およびワークスペース名を含む環境情報を表示します。 |
|
長い形式で、すべての引数が表示されます。ユーザ名やコマンドライン引数のリストは、 切り捨てられません。 |
|
ロックされたファイルの情報を表示します。情報が収集されるのは、 このオプションを使用するのに事前に必要な条件は、サーバを実行する プラットフォームにより異なります。
このオプションと共に |
|
ステータスが |
|
「グローバルオプション」を参照してください。 |
使用上の注意点
ファイル引数でリビジョン指定子を使用できるか? | ファイル引数でリビジョン範囲を使用できるか? | 最低限必要なアクセスレベル |
---|---|---|
いいえ |
いいえ |
例
|
Helixサーバのプロセス情報
(コマンドのみ)を表示します。
|
|
出力行の長さを制限せずに、コマンドと引数を表示します。
|
|
出力行ごとに80文字に制限し、コマンドと引数を表示します。
|
|
プロセス123を終了のためにマークするよう、
Perforceサービスに通知します。
|
|
監視テーブルのすべてのエントリを消去します。 |
関連コマンド
監視を行うよう設定する |
|
監視を行わないよう設定する |
|