您的位置 首页 php

优化Linux中php-fpm进程占用内存及不释放内存问题

最近发现我的网站内存告急,然后htop查看了下,发现php-fpm占用了很大的内存,然后我重启了php-fpm之后马上腾出了很多内存出来,后来一个星期后内存又告急了,这应该是进程一直占用内存不释放的原因了。

在网上了搜了相关资料,确认是php-fpm占用不释放了,通过修改配置优化。

1、解决php-fpm占用内存问题

我的服务器是1GB内存的配置php-fpm,实际设置数值还得根据服务器本身的性能、PHP等综合考虑。

vim /etc/php-fpm.d/www.conf 

pm = dynamic #dynamic和ondemand适合小内存。
pm.max_children = 15 # static 模式下生效,dynamic不生效。
pm.start_servers = 8 #dynamic模式下开机的进程数量。
pm.min_spare_servers = 6 #dynamic模式下最小php-fpm进程数量。
pm.max_spare_servers = 15 #dynamic模式下最大php-fpm进程数量。
 

2、解决php-fpm进程不释放内存

上面通过减少php-fpm进程总数来达到减少php-fpm内存占用的问题,实际使用过程中发现php-fpm进程还存长期占用内存而不释放的问题。解决的方法就是减少pm.max_requests数。

最大请求数max_requests,即当一个 PHP-CGI 进程处理的请求数累积到 max_requests 个后,自动重启该进程,这样达到了释放内存的目的了。以1GB内存的VPS主机设置为例(如果你设置的数值没有达到释放内存可以继续调低):

pm.max_requests = 500 
 

当php-fpm进程达到了pm.max_requests设定的数值后,就会重启该进程,从而释放内存。

文章来源:智云一二三科技

文章标题:优化Linux中php-fpm进程占用内存及不释放内存问题

文章地址:https://www.zhihuclub.com/80090.shtml

关于作者: 智云科技

热门文章

网站地图