PHPエージェントは2つの部分から構成されています。
- PHPの拡張モジュール、
newrelic.so
- エージェント・デーモン、
newrelic-daemon
このデーモンは、PHP エージェントと New Relic コレクターの間のプロキシとして動作し、ネットワークトラフィックを削減し、インスツルメンテーションされたアプリケーションの応答時間を改善します。デーモンが実行されていない場合、New Relic にデータは報告されません。
PHP デーモンの初期状態またはアイドル状態
デーモンが初期状態またはアイドル状態にあるとき、 2つの トランザクションが発生しないと、レポートを開始しません。
イニシャル の状態で。
- 最初のトランザクションで、デーモンは新たに報告されたアプリケーションを自身のアプリケーション情報テーブルに追加します。
- アプリケーションが追加されると、デーモンは2つ目のトランザクションをNew Relicに報告します。
アイドル の状態で。
- 最初のトランザクションでは、デーモンを起動し、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`