PHP로 웹사이트를 개발할 때, 일부 PHP 동적 페이지가 출시 후 접근 속도가 매우 느리다면, php-fpm 느린 로그를 통해 웹사이트의 병목 현상을 분석할 수 있습니다.
PHP-FPM 슬로우로그 설정을 통해 어떤 PHP 프로세스가 너무 느려서 웹사이트 문제를 일으키는지 확인할 수 있습니다.
먼저, 아래 그림과 같이 top -c 명령어로 모든 프로세스를 확인하여 php-fpm이 로드한 구성 파일 주소를 확인하세요:
FPM 구성
매개변수: -p, 명령줄에서 --접두사를 동적으로 수정
include=etc/php-fpm.d/*.conf 파일을 포함하도록 하며, glob(3)이 존재할 경우 (glob() 함수는 지정된 패턴에 맞는 파일명 또는 디렉터리를 반환합니다)
PHP-FPM은 하위 구성 파일을 로드하며, $pool 변수는 어떤 명령어에도 사용할 수 있고, 해당 프로세스 풀 이름을 대체합니다. 예를 들어: 여기[www]
느린 장목을 켜세요
들어가다/usr/local/etc/php-fpm.d하위 설정 파일, www.conf를 찾아보세요(실제 상황에 따라 ), PHP 5.3.3 및 이후 버전은 다음과 같이 설정됩니다:
; 단일 요청을 전달하는 타임아웃이 지나면 PHP 백트레이스가 진행됩니다. ; '슬로우로그' 파일에 덤프됩니다. '0' 값은 '오프'를 의미합니다. ; 사용 가능한 단위: s(econds)(기본값), m(inutes), h(ours), d(ays) ; 기본 값: 0 request_slowlog_timeout = 1s ; 느린 요청을 위한 로그 파일 ; 기본 값: /usr/local/php/log/php-fpm.log.slow slowlog = /usr/local/php/log/php-fpm.log.slow ; 단일 요청을 전달하는 타임아웃이 지나면 작업자 프로세스가 진행됩니다. ; 죽임을 당할 수도 있다. 이 옵션은 'max_execution_time' ini 옵션이 있을 때 사용해야 합니다 ; 스크립트 실행을 멈추지 않습니다. '0' 값은 '꺼짐'을 의미합니다. ; 사용 가능한 단위: s(econds)(기본값), m(inutes), h(ours), d(ays) ; 기본 값: 0 request_terminate_timeout = 10초 참고: request_terminate_timeout 너무 오랫동안 실행된 프로세스를 직접 종료하세요
request_slowlog_timeout 실행하기 너무 느린 파일을 로그에 기록합니다
이제부터는 느린 실행 로그 /usr/local/php/log/php-fpm.log.slow에 따라 프로그램 파일을 최적화할 수 있습니다!
|