下面我們來(lái)看一篇關(guān)于php性能分析之php-fpm的慢執(zhí)行日志slow log文章,希望文章對(duì)各位有幫助.
眾所周知,mysql有slow query log,根據(jù)慢查詢?nèi)罩?我們可以知道那些sql語(yǔ)句有性能問(wèn)題,作為mysql的好搭檔,php也有這樣的功能,如果你使用php-fpm來(lái)管理php的話,你可以通過(guò)如下選項(xiàng)開(kāi)啟.
PHP 5.3.3 之前設(shè)置如下:
<value name=”request_slowlog_timeout”>5s</value>
<value name=”slowlog”>logs/php-fpm-slowlog.log</value>
PHP 5.3.3 之后設(shè)置以下如下:
request_slowlog_timeout = 5s
slowlog = /usr/local/php/log/php-fpm-slowlog.log
說(shuō)明:
request_slowlog_timeout是腳本超過(guò)多長(zhǎng)時(shí)間 就可以記錄到日志文件
slowlog 是日志文件的路徑
開(kāi)啟后,如果有腳本執(zhí)行超過(guò)指定的時(shí)間,就會(huì)在指定的日志文件中寫(xiě)入類似如下的信息:
- [19-Dec-2013 16:54:49] [pool www] pid 18575
- script_filename = /home/admin/web/htdocs/sandbox_canglong/test/tt.php
- [0x0000000003a00dc8] curl_exec() /home/admin/web/htdocs/sandbox_canglong/test/tt.php:2
- [0x0000000003a00cd0] exfilter_curl_get() /home/admin/web/htdocs/sandbox_canglong/test/tt.php:6
日志說(shuō)明:
script_filename 是入口文件
curl_exec():說(shuō)明是執(zhí)行這個(gè)方法的時(shí)候超過(guò)執(zhí)行時(shí)間的。
exfilter_curl_get():說(shuō)明調(diào)用curl_exec()的方法是exfilter_curl_get().
每行冒號(hào)后面的數(shù)字是行號(hào),開(kāi)啟后,在錯(cuò)誤日志文件中也有相關(guān)記錄,如下:
- [19-Dec-2013 15:55:37] WARNING: [pool www] child 18575, script ‘/home/admin/web/htdocs/sandbox_canglong/test/tt.php’ (request: “GET /test/tt.php”) executing too slow (1.006222 sec), logging //Vevb.com
- [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
新聞熱點(diǎn)
疑難解答