• /
  • ログイン
  • 無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

New Relic デーモンのプロセス

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-daemon
newrelic 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プロセス)

ワーカープロセスは次のようなことを行います。

  • PHPエージェントからの接続を受け入れる
  • メトリクスの収集
  • New Relic コレクターとのコミュニケーション

プロセスの終了

デーモンが潔く終了するとき (通常は /etc/init.d/newrelic-daemon stop を実行することで) は、ウォッチドッグプロセスに終了シグナルを送ります。これにより、ワーカープロセスがきれいに終了し、保留中のデータをNew Relicに送信するチャンスが与えられます。

重要

デーモンを手動で終了させる必要がある場合は、ワーカーではなく、常にウォッチドッグを終了させてください。

ワーカープロセスが致命的なエラーに遭遇して予期せず終了した場合、ウォッチドッグプロセスは直ちに新しいワーカープロセスを再生成します。これにより、デーモンのダウンタイムを絶対的に少なくすることができます。

デーモンの停止

デーモンを殺すには、以下の方法があります。

  • 推奨プロセス: 使用 /etc/init.d/newrelic-daemon stop.これは、デーモンと対話するための望ましい方法です。

  • プロセスIDで直接プロセスをキルする。

    kill 1368
  • ウォッチドッグのPIDファイルを使用します。

    kill `cat /var/run/newrelic-daemon.pid`
問題を作成する
Copyright © 2023 New Relic Inc.