PHP 에이전트는 두 부분으로 구성됩니다.
- PHP 확장 모듈,
newrelic.so
- 에이전트 데몬,
newrelic-daemon
데몬은 PHP 에이전트와 New Relic 수집기 사이에서 프록시 역할을 하여 네트워크 트래픽을 줄이고 계측된 애플리케이션의 응답 시간을 개선합니다. 데몬이 실행되고 있지 않으면 New Relic에 데이터가 보고되지 않습니다.
PHP 데몬 초기 또는 유휴 상태
데몬이 초기 또는 유휴 상태에 있으면 보고를 시작하기 전에 two 트랜잭션이 발생해야 합니다.
initial 상태:
- 첫 번째 트랜잭션에서 데몬은 새로 보고하는 응용 프로그램을 자체 응용 프로그램 정보 테이블에 추가합니다.
- 애플리케이션이 추가되면 데몬은 두 번째 트랜잭션을 New Relic에 보고합니다.
idle 상태:
- 첫 번째 트랜잭션은 데몬을 깨우고 New Relic에 대한 연결을 다시 설정합니다.
- 두 번째 트랜잭션은 New Relic에 데이터를 보고합니다.
워치독 및 작업자 프로세스
프로세스 목록을 작성하면 항상 두 개의 데몬 프로세스가 실행되고 있음을 알 수 있습니다.
$ 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 ...
두 개의 프로세스를 실행하는 것은 정상적인 동작입니다. 첫 번째 열은 프로세스 소유자, 두 번째 열은 프로세스 ID(PID), 세 번째 열은 상위 프로세스 ID(PPID)입니다.
데몬 프로세스 | 코멘트 |
---|---|
Watchdog(첫 번째 프로세스) | PID 1이 소유한 첫 번째 프로세스는 "감시" 프로세스입니다. "작업자" 프로세스인 두 번째 프로세스를 감시합니다. |
작업자(두 번째 프로세스) | 작업자 프로세스는 다음을 수행합니다.
|
종료 프로세스 | 데몬이 정상적으로 종료될 때(일반적으로 중요데몬을 수동으로 종료해야 하는 경우 작업자가 아닌 항상 워치독을 종료하십시오. 작업자 프로세스에 치명적인 오류가 발생하여 예기치 않게 종료되면 감시 프로세스가 즉시 새 작업자 프로세스를 다시 생성합니다. 이는 데몬이 절대적인 최소 가동 중지 시간을 경험하도록 하는 데 도움이 됩니다. |
데몬을 중지
다음 방법을 사용하여 데몬을 종료할 수 있습니다.
권장 프로세스:
/etc/init.d/newrelic-daemon stop
) 사용하세요. 이는 데몬과 상호 작용하는 데 선호되는 방법입니다.프로세스 ID로 직접 프로세스를 종료합니다.
kill 1368워치독 PID 파일 사용:
kill `cat /var/run/newrelic-daemon.pid`