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

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

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

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

回答
編輯回答
萌二代

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

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

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

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

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

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

2017年11月15日 03:47