PHPエージェントは2つの部分から構成されています。
- PHP拡張モジュールは、
newrelic.so
- エージェントデーモン、
newrelic-daemon
このデーモンは、PHP エージェントと New Relic コレクターの間のプロキシとして動作し、ネットワークトラフィックを削減し、インスツルメンテーションされたアプリケーションの応答時間を改善します。デーモンが実行されていない場合、New Relic にデータは報告されません。
PHP デーモンの初期状態またはアイドル状態
デーモンが初期状態またはアイドル状態にある場合、レポートを開始する前にtwoトランザクションが発生する必要があります。
initial状態:
- 最初のトランザクションで、デーモンは新たに報告されたアプリケーションを自身のアプリケーション情報テーブルに追加します。
- アプリケーションが追加されると、デーモンは2つ目のトランザクションをNew Relicに報告します。
idle状態:
- 最初のトランザクションでは、デーモンを起動し、New Relicへの接続を再確立します。
- 2つ目のトランザクションは、New Relicにデータを報告します。
ウォッチドッグとワーカープロセス
プロセスリストを見ると、常に2つのデーモンプロセスが動いていることがわかります。
$ ps -ef | grep newrelic-daemonnewrelic 1368 1 0 00:28 ? 00:00:00 /usr/bin/newrelic-daemon ...newrelic 1370 1368 0 00:28 ? 00:00:00 /usr/bin/newrelic-daemon ...
2つのプロセスが動作していることは正常な動作です。1列目はプロセスオーナー、2列目はプロセスID(PID)、3列目は親プロセスID(PPID)です。
デーモン・プロセス | コメントコメント |
---|---|
ウォッチドッグ(最初のプロセス) | 最初のプロセス、つまりPID 1が所有するプロセスは、"ウォッチドッグ" プロセスです。このプロセスは、2番目のプロセスである"worker" プロセスを監視します。 |
ワーカー(第2プロセス) | ワーカープロセスは次のようなことを行います。
|
プロセスの終了 | デーモンが正常に終了されるとき (通常は 重要デーモンを手動で終了させる必要がある場合は、ワーカーではなく、常にウォッチドッグを終了させてください。 ワーカープロセスが致命的なエラーに遭遇して予期せず終了した場合、ウォッチドッグプロセスは直ちに新しいワーカープロセスを再生成します。これにより、デーモンのダウンタイムを絶対的に少なくすることができます。 |
デーモンの停止
デーモンを殺すには、以下の方法があります。
推奨されるプロセス:
/etc/init.d/newrelic-daemon stop
を使用します。 これはデーモンと対話するための推奨される方法です。プロセスIDで直接プロセスをキルする。
kill 1368ウォッチドッグのPIDファイルを使用します。
kill `cat /var/run/newrelic-daemon.pid`