解决Linux下php-fpm进程过多导致内存耗尽问

2022-05-16  本文已影响0人  geeooooz
查询消耗内存最多的前40个进程

ps auxw|head -1;ps auxw|sort -rn -k4|head -40

查看第四列内存使⽤占⽐,发现除了mysql数据库服务之外,php-fpm服务池开启了太多⼦进程,占⽤超过⼤半内存,问题找
到了,我们开始解决问题:设置控制php-fpm进程池进程数量。

通过搜索,发现可以通过配置属性,控制php-fpm⼦进程数量,⾸先,打开php-fpm配置⽂件,执⾏指令:

vi /usr/local/php/etc/php-fpm.conf

pm.max_children 值为50,每⼀个进程占⽤1%-2.5%的内存,加起来就耗费⼤半内存了,所以我们需要将其值调⼩,这⾥将其设置为25,同时,检查以下两个属性
pm.max_spare_servers
pm.min_spare_servers

pm.max_spare_servers 该值表⽰保证空闲进程数最⼤值,如果空闲进程⼤于此值,此进⾏清理。
pm.min_spare_servers 保证空闲进程数最⼩值,如果空闲进程⼩于此值,则创建新的⼦进程。

这两个值均不能⼤于 pm.max_children 值,
通常设置 pm.max_spare_servers 值为 pm.max_children 值的60%-80%。
pm.min_spare_servers 默认设置为5

上一篇下一篇

猜你喜欢

热点阅读