php-fpm特色功能

fastcgi_finish_request() 

這個特性可以提高一些 php 請求的處理速度。

例如程序步驟是:

1.程序處理頁面邏輯

2.保存數據

3.返回結果

可以改成

1.處理邏輯

2.返回結果

fastcgi_finish_request() 

3.保存數據 //調用這個函數,會強制處理進程返回結果,並將後續邏輯在後臺執行,不影響前端用戶體驗

 

request_slowlog_timeout


範圍: php-fpm.conf 選項

分類: 方便

這個選項能讓你跟蹤執行緩慢的腳本並把他們連同調用棧一起記錄再日誌文件中。例如如下設置:

    <value name="request_slowlog_timeout">5s</value>
    <value name="slowlog">logs/slow.log</value>

記錄的 slow.log 可能是這個樣子:


Sep 21 16:22:19.399162 pid 29715 (pool default)
script_filename = /local/www/stable/www/catalogue.php 
[0x00007fff23618120] mysql_query() /srv/stable/common/Database/class.MySQLRequest.php:20 
[0x00007fff23618560] getResult() /srv/stable/common/Database/class.Facade.php:106 
[0x00007fff23618aa0] query() /srv/stable/common/mysite.com/ORM/class.UsersMapper.php:99 
[0x00007fff23618d60] resolveByID() /srv/stable/common/mysite.com/ORM/class.User.php:629 
[0x00007fff236193b0] getData() /srv/stable/common/class.DataEntity.php:90
[0x00007fff236195d0] load() /srv/stable/common/mysite.com/ORM/class.User.php:587 
[0x00007fff23619a00] getIsHidden() /srv/stable/common/mysite.com/class.User.php:42 
[0x00007fff2361a470] getName() /local/www/stable/www/catalogue.php:41

同時,在 error.log 中保存瞭如下記錄:


Sep 21 16:22:19.399031 [WARNING] fpm_request_check_timed_out(), line 135: child 29715, script '/local/www/stable/www/catalogue.php' (pool default) executing too slow (5.018002 sec), logging

正如你再例子中看到的,腳本運行了 5 秒以上,並很可能是由於 mysql 響應慢造成的(top backtrace)。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章