php-fpm的配置選項(xiàng)和含義

<pre>
本系列屬于php進(jìn)階筆記。
本章內(nèi)容慢更,在日常工作中用到就添加進(jìn)來(lái)。希望大家一起討論更新。
</pre>

<h2>max_children</h2>

max_children是PHP-FPM Pool 最大的子進(jìn)程數(shù),他數(shù)值取決于你的服務(wù)器內(nèi)存。 假設(shè)你打算給10G內(nèi)存給當(dāng)前配置的PHP-FPM Pool,一般一個(gè)PHP請(qǐng)求占用內(nèi)存10M-40M,我們按站點(diǎn)每個(gè)PHP請(qǐng)求占用內(nèi)存25M,這樣max_children = 10G/25M = 409。所以,這個(gè)值可以根據(jù)情況算出來(lái)。

<h2>max_requests</h2>

max_requests是每個(gè)子進(jìn)程重生之前處理的請(qǐng)求數(shù), 默認(rèn)值為unlimited(默認(rèn)為1024),可以設(shè)置小一點(diǎn)(如500左右),這樣可以避免內(nèi)存泄露帶來(lái)的問(wèn)題

Nginx代理過(guò)程,將業(yè)務(wù)服務(wù)器請(qǐng)求數(shù)據(jù)緩存到本地文件,再將文件數(shù)據(jù)轉(zhuǎn)發(fā)給請(qǐng)求客戶端。高并發(fā)的客戶端請(qǐng)求,必然要求服務(wù)器文件句柄的并發(fā)打開(kāi)限制。使用ulimit命令(ulimit -n),查看Linux系統(tǒng)文件句柄并發(fā)限制,默認(rèn)是1024,我們可以改為65535(2 的 16 次方,這是系統(tǒng)端口的極限)。
修改的方法為:修改系統(tǒng)文件/etc/security/limits.conf,添加如下信息,并重新啟動(dòng)系統(tǒng)生效。

soft nofile 65535
hard nofile 65535

然后在Nginx配置文件中,把文件限制及連接數(shù)信息改為65535:

worker_rlimit_nofile 65535;
events { 
   use epoll;
   worker_connections 65535;
}

<h2>request_terminate_timeout</h2>

如果你的服務(wù)器性能足夠好,且寬帶資源足夠充足,PHP腳本沒(méi)有系循環(huán)或BUG的話你可以直接將”request_terminate_timeout”設(shè)置成0s。

0s的含義是讓PHP-CGI一直執(zhí)行下去而沒(méi)有時(shí)間限制。而如果你做不到這一點(diǎn),也就是說(shuō)你的PHP-CGI可能出現(xiàn)某個(gè)BUG,或者你的寬帶不夠充足或者其他的原因?qū)е履愕腜HP-CGI能夠假死那么就建議你給”request_terminate_timeout”賦一個(gè)值,這個(gè)值可以根據(jù)你服務(wù)器的性能進(jìn)行設(shè)定。
一般來(lái)說(shuō)性能越好你可以設(shè)置越高,20分鐘-30分鐘都可以。由于我的服務(wù)器PHP腳本需要長(zhǎng)時(shí)間運(yùn)行,有的可能會(huì)超過(guò)10分鐘因此我設(shè)置了900秒,這樣不會(huì)導(dǎo)致PHP-CGI死掉而出現(xiàn)502 Bad gateway這個(gè)錯(cuò)誤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 在實(shí)際的開(kāi)發(fā)和應(yīng)用中偶發(fā)的502,504讓人頭痛,下面轉(zhuǎn)發(fā)一個(gè)寫(xiě)的比較全面的。 PHP-fpm PHP-FPM是一...
    daos閱讀 2,405評(píng)論 2 18
  • 轉(zhuǎn)自:http://www.jb51.net/article/42716.htm 一、約定幾個(gè)目錄 /usr/lo...
    Shaun_lan閱讀 2,765評(píng)論 1 4
  • php-fpm的啟動(dòng)參數(shù) #測(cè)試php-fpm配置 /usr/local/php/sbin/php-fpm -t ...
    落櫻月千殤閱讀 1,106評(píng)論 0 2
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評(píng)論 18 139
  • 生活一點(diǎn)都不溫柔 別做夢(mèng)了,電影里面的生活,不會(huì)出現(xiàn)在你身上。 才上班實(shí)習(xí)幾個(gè)星期,卻有一種假如這輩子就這樣了的惶...
    呂小布_bdce閱讀 291評(píng)論 0 0