因為php引擎自己不帶監控慢查詢的功能,因此您如果選擇的是php-fpm作為終端來呼叫php引擎,那么我們這里介紹php-fpm監控php處理請求的慢查詢日志方法,
php-fpm配置選項:
"slowlog" - logging scripts (not just their names, but their PHP backtraces too, using ptrace and similar things to read remote process' execute_data) that are executed unusually slow;
request_slowlog_timeout mixed
The timeout for serving a single request after which a PHP backtrace will be dumped to the 'slowlog' file. A value of '0' means 'Off'. Available units: s(econds)(default), m(inutes), h(ours), or d(ays). Default value: 0.
重啟上面2個選項后,我們重啟systemctl restart php-fpm后,就可以正常記錄慢查詢日志了,
慢查詢日志記錄格式案例:
[root@localhost php-fpm]# tail -f /var/log/php-fpm/www-slow.log
[27-Mar-2020 19:19:18] [pool www] pid 4596
script_filename = /var/www/html/info.php
[0x00007fd41ec5e318] sleep() /var/www/html/info.php:11
注意的問題:
注意1.如果是centos7,開啟了selinux安全系統,那么需要該安全系統開啟給php-fpm(也可能是apache待查)某個權限,否則記錄失敗,并在php-fpm錯誤日志報錯,
報錯如下,
[27-Mar-2020 19:16:30] ERROR: failed to ptrace(ATTACH) child 4598: Operation not permitted (1)
注意2:如果有超時的請求,那么error日志也會有warning的警告和3個notice的追蹤提示,如果請求不超時,則不提示,
[27-Mar-2020 19:19:18] WARNING: [pool www] child 4596, script '/var/www/html/info.php' (request: "GET /info.php") executing too slow (1.058668 sec), logging
[27-Mar-2020 19:19:18] NOTICE: child 4596 stopped for tracing
[27-Mar-2020 19:19:18] NOTICE: about to trace 4596
[27-Mar-2020 19:19:18] NOTICE: finished trace of 4596

?歡迎加我們微信wang1415035017進入微信高級技術群共同進步,或者掃碼加入我們哦(V_V)

?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67436.html
標籤:PHP
上一篇:PHP 代碼簡潔之道 ( PHP Clean Code)(第二部分)
下一篇:laravel的中間件創建思路
