摘要:英文解釋中文翻譯設置子進程接受主進程復用信號的超時時間。默認值為,表示該選項為關閉狀態。唯一的解決方法是關閉安全模式或者在中修改時間限制。
process_control_timeout
英文解釋
process_control_timeout
?mixed
Time limit for child processes to wait for a reaction on signals from master. Available units: s(econds), m(inutes), h(ours), or d(ays) Default Unit: seconds. Default value: 0.
中文翻譯
process_control_timeout
?mixed
設置子進程接受主進程復用信號的超時時間。可用單位:s(秒),m(分),h(小時)或者 d(天)。默認單位:s(秒)。默認值:0(關閉)。
中文翻譯有個不恰當的地方,英文解釋里并沒有指明該信號是復用信號。
我的理解:
處理請求
原則上,php-fpm會選擇空閑的fastcgi進程去處理請求,在處理之前,php-fpm會給fastcgi發送信號,用來讓fastcgi進程準備好接受請求處理。但是fastcgi進程并不總是能夠處理請求,也就是不能總是響應該信號(比如出現假死的情況),這時候就需要設定php-fpm留給fastcgi進程響應信號的時間,如果超時了,php-fpm會想其他辦法(例如選擇其他fastcgi進程),這個就是process_control_timeout參數的作用
php-fpm進行reload
process_control_timeout = 10
http://localhost當瀏覽器訪問http://localhost時,進行php-fpm平滑reload,fastcgi信號收到關閉進程信號后,第一個sleep函數會直接返回,但是第二個sleep仍在執行。因此,php-fpm會被這一個舊fastcgi進程卡10s,超過后才能完成平滑重啟
request_terminate_timeout在php-fpm.conf文件中的描述如下:
; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the "max_execution_time" ini option
; does not stop script execution for some reason. A value of "0" means "off".
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_terminate_timeout = 0翻譯過來就是:
request_terminate_timeout參數設置了處理單個請求的超時時間,過了之后,該worker進程就會被kill掉。這個選項應該在php.ini文件的max_execution_time選項由于某種原因沒有停止腳本的運行下使用。默認值為0,表示該選項為關閉狀態。正如上面所說,request_terminate_timeout設定的是請求的超時時間,而php.ini配置中的max_execution_time根據手冊如下的解釋,是腳本被允許的最大執行時間。
max_execution_time
?integer
這設置了腳本被解析器中止之前允許的最大執行時間,單位秒。 這有助于防止寫得不好的腳本占盡服務器資源。 默認設置為?30。 從命令行運行 PHP 時,默認設置為?0。
最大執行時間不會影響系統調用和系統操作等。更多細節參見?set_time_limit()。
在?安全模式?下你不能通過?ini_set()?來修改此設置。 唯一的解決方法是關閉安全模式或者在?php.ini中修改時間限制。
你的 web 服務器也可以有其他超時設置,也有可能中斷 PHP 的執行。 Apache 有一個?Timeout?指令,IIS 有一個 CGI 超時功能。 他們默認都是 300 秒。更多具體信息參見你的 web 服務器的文檔。區別如下:
超時后,request_terminate_timeout會返回502Bad Gateway了,而max_execution_time會拋出Fatal Error。
max_execution_time不包括諸如使用system(),sleep()的系統調用、流操作、數據庫操作等的時間,所以比較雞肋,而request_terminate_timeout會包含程序的完整請求時間。
另外,開啟request_terminate_timeout并不會讓max_execution_time失效,先到達誰的超時時間誰起作用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28379.html
摘要:大家有好的文章可以在評論下面分享出來共同進步本文鏈接數組使用之道程序員進階學習書籍參考指南教你在不使用框架的情況下也能寫出現代化代碼巧用數組函數框架中間件實現沒錯,這就是面向對象編程設計模式需要遵循的個基本原則令人困惑的在中使用協程實現多任 大家有好的文章,可以在評論下面分享出來, 共同進步! 本文github鏈接 php PHP 數組使用之道 PHP程序員進階學習書籍參考指南 教你...
摘要:前言最近服務器內存使用率一直居高不下,檢查之后發現可能和進程數過多有關。什么是即進程管理器,用于控制的內存和進程等。動態方式下的最大進程數量。 前言: 最近服務器內存使用率一直居高不下,檢查之后發現可能和php-fpm進程數過多有關。本文記錄了我優化php-fpm配置文件的過程并補充了一些和php-fpm有關的知識。 什么是php-fpm: php-fpm即FastCGI進程管理器,用...
摘要:安裝的,如果的這幾個參數設置不當了,會導致啟動不了,站點不能解析文件,報錯誤。 安裝php7+的,如果php-fpm的這幾個參數設置不當了,會導致php-fpm啟動不了,nginx站點不能解析php文件,報404錯誤。 相關命令:centos7+,啟動php-fpm: systemctl start php-fpm 查看php-fpm是否啟動: ps -ef|grep php ph...
閱讀 3427·2021-09-26 09:46
閱讀 2782·2021-09-13 10:23
閱讀 3510·2021-09-07 10:24
閱讀 2388·2019-08-29 13:20
閱讀 2919·2019-08-28 17:57
閱讀 3072·2019-08-26 13:27
閱讀 1175·2019-08-26 12:09
閱讀 505·2019-08-26 10:27