善用php-fpm的慢执行日志slow log,分析php性能问题
來源:http://www.bo56.com/%E5%96%84%E7%94%A8php-fpm%E7%9A%84%E6%85%A2%E6%89%A7%E8%A1%8C%E6%97%A5%E5%BF%97slow-log%EF%BC%8C%E5%88%86%E6%9E%90php%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98/
眾所周知,mysql有slow query log,根據慢查詢日志,我們可以知道那些sql語句有性能問題。作為mysql的好搭檔,php也有這樣的功能。如果你使用php-fpm來管理php的話,你可以通過如下選項開啟。
PHP 5.3.3 之前設置如下:
<value name="request_slowlog_timeout">5s</value>
<value name="slowlog">logs/php-fpm-slowlog.log</value>
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() :說明調用curl_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
總結
以上是生活随笔為你收集整理的善用php-fpm的慢执行日志slow log,分析php性能问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女生适合买房子吗?
- 下一篇: 动态规划算法php,php算法学习之动态