php-fpm 的最大占用内存可以动态设置吗?
最近遇到一个问题, 公司项目一些网页占用的内存不多, 设置了php-fpm最大占用内存为80M, 已经够用, 但是一些特殊的页面必须要设置max_memory=512M, 才能正常打开, 否则会502或500.
因此, 想请教大家, 这种情况下(不同页面占用内存差距过大), 如何动态的设置脚本内存呢?
一开始的解决思路是使用函数ini_set('memory_limit', '512M') 来达到动态设置内存的目的, 但是实际过程中发现这样的设置不生效, 仔细想想就容易发现因为php-fpm的内存限制在php.ini之上, 就算php设置了512m, 但是fpm还是不允许那么大的内存占用. 那么, 有没有什么函数可以动态设置fpm的内存呢? 还是说 fpm配置文件中最大占用内存一旦设置了, 就全局无法改变?
或者有其他的解决方案吗? 给fpm设置固定的过大的max_momory, 我担心内存泄漏会比较严重.
感谢各位大佬的帮助.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
取消php fpm的最大值设置,这种情况下使用php.ini控制一般脚本占用内存上限,如需要特殊情况下放开内存就可以用
ini_set
('memory_limit', '512M')另外,提供题主一个思路,像类似您说的“特殊情况页面”这样的需求或脚本,这样大量占用内存的脚本无非是处理数据、定时脚本、队列处理等,可以考虑新开一台机器专门处理,不建议将这些业务与外部调用的实时接口(打个比方)放在一台机器上:1是因为业务场景不同,2是所需配置不尽相同。否则长远来看的话,维护成本会相对较高!
不配置php fpm的最大内存。
在phpinfo里找下“memory_limit”看看是不是你设置的值,就知道你设置后有没有生效了,改完记得重启下php-fpm