鍍金池/ 問答/PHP/ php-fpm 的最大占用內(nèi)存可以動態(tài)設(shè)置嗎?

php-fpm 的最大占用內(nèi)存可以動態(tài)設(shè)置嗎?

最近遇到一個問題, 公司項目一些網(wǎng)頁占用的內(nèi)存不多, 設(shè)置了php-fpm最大占用內(nèi)存為80M, 已經(jīng)夠用, 但是一些特殊的頁面必須要設(shè)置max_memory=512M, 才能正常打開, 否則會502或500.

因此, 想請教大家, 這種情況下(不同頁面占用內(nèi)存差距過大), 如何動態(tài)的設(shè)置腳本內(nèi)存呢?
一開始的解決思路是使用函數(shù)ini_set('memory_limit', '512M') 來達到動態(tài)設(shè)置內(nèi)存的目的, 但是實際過程中發(fā)現(xiàn)這樣的設(shè)置不生效, 仔細想想就容易發(fā)現(xiàn)因為php-fpm的內(nèi)存限制在php.ini之上, 就算php設(shè)置了512m, 但是fpm還是不允許那么大的內(nèi)存占用. 那么, 有沒有什么函數(shù)可以動態(tài)設(shè)置fpm的內(nèi)存呢? 還是說 fpm配置文件中最大占用內(nèi)存一旦設(shè)置了, 就全局無法改變?
或者有其他的解決方案嗎? 給fpm設(shè)置固定的過大的max_momory, 我擔心內(nèi)存泄漏會比較嚴重.
感謝各位大佬的幫助.

回答
編輯回答
萌二代

不配置php fpm的最大內(nèi)存。

2017年8月26日 11:52
編輯回答
影魅

取消php fpm的最大值設(shè)置,這種情況下使用php.ini控制一般腳本占用內(nèi)存上限,如需要特殊情況下放開內(nèi)存就可以用ini_set('memory_limit', '512M')

另外,提供題主一個思路,像類似您說的“特殊情況頁面”這樣的需求或腳本,這樣大量占用內(nèi)存的腳本無非是處理數(shù)據(jù)、定時腳本、隊列處理等,可以考慮新開一臺機器專門處理,不建議將這些業(yè)務(wù)與外部調(diào)用的實時接口(打個比方)放在一臺機器上:1是因為業(yè)務(wù)場景不同,2是所需配置不盡相同。否則長遠來看的話,維護成本會相對較高!

2018年6月20日 01:58
編輯回答
情已空

在phpinfo里找下“memory_limit”看看是不是你設(shè)置的值,就知道你設(shè)置后有沒有生效了,改完記得重啟下php-fpm

2017年11月15日 03:47