우리 모두 알고 있듯이 MySQL에는 느린 쿼리 로그가 있습니다. 느린 쿼리 로그에 따르면 어떤 SQL 문에 성능 문제가 있는지 알 수 있습니다. mysql의 좋은 파트너인 php에도 이런 기능이 있습니다. php-fpm을 사용하여 PHP를 관리하는 경우 다음 옵션을 통해 활성화할 수 있습니다.
PHP 5.3.3 이전 설정은 다음과 같습니다:
PHP 이후 5.3.3 다음 설정을 지정합니다:
request_slowlog_timeout = 5s
slowlog = /usr/local/php/log/php-fpm-slowlog.log
설명:
request_slowlog_timeout은 얼마나 오래 됩니까? 스크립트를 초과하면 로그 파일에 기록될 수 있습니다
Slowlog는 로그 파일의 경로입니다
켜진 후 스크립트가 지정된 시간 이상 실행되면 다음과 유사한 정보가 표시됩니다 지정된 로그 파일에 기록됩니다:
[19-Dec-2013 16:54:49] [pool www] pid 18575 script_filename = /home/web/htdocs/sandbox_canglong/test/tt.php [0x0000000003a00dc8] curl_exec() /home/web/htdocs/sandbox_canglong/test/tt.php:2 [0x0000000003a00cd0] exfilter_curl_get() /home/web/htdocs/sandbox_canglong/test/tt.php:6
로그 설명:
script_filename은 항목 파일입니다.
curl_exec(): 이 메서드를 실행할 때 실행 시간이 초과됨을 의미합니다.
exfilter_curl_get(): 컬_exec()를 호출하는 메소드가 exfilter_curl_get()임을 나타냅니다.
각 줄의 콜론 뒤의 숫자가 줄 번호입니다.
켜고 나면 오류 로그 파일에도 관련 기록이 있습니다. 다음과 같습니다.
[19-Dec-2013 15:55:37] WARNING: [pool www] child 18575, script '/home/web/htdocs/sandbox_canglong/test/tt.php' (request: "GET /test/tt.php") executing too slow (1.006222 sec), logging [19-Dec-2013 15:55:37] NOTICE: child 18575 stopped for tracing [19-Dec-2013 15:55:37] NOTICE: about to trace 18575 [19-Dec-2013 15:55:37] NOTICE: finished trace of 18575