解决LNMP下php-fpm进程占用系统内存过高的问题

网站搭建好以后,我的VPS内存时常爆满,居高不下,让我好生郁闷了一段时间,尽管网站的速度暂时没有受到太大的影响,但这爆满的内存实在是个问题。经过我的搜索及实践,总结了以下的有效方法,希望能帮到同样受VPS内存爆满问题困扰的朋友。

网站环境是用lnmp脚本搭建的。

首先找到文件的位置

#进入php-fpm.conf文件位置
cd /usr/local/php/etc

#如果不在这里可以用whereis 命令寻找
whereis php-fpm.conf

查看编辑php-fpm.conf文件

vim php-fpm.conf

参数说明

#指定进程管理方式,有3种可供选择:static、dynamic和ondemand。static管理模式适合比较大内存的服务器,而dynamic则适合小内存的服务器。
pm = dynamic

#static模式下创建的子进程数或dynamic模式下同一时刻允许最大的php-fpm子进程数量。
pm.max_children = 16 

#动态方式下的起始php-fpm进程数量。
pm.start_servers = 10

#动态方式下服务器空闲时最小php-fpm进程数量。
pm.min_spare_servers = 8 

#动态方式下服务器空闲时最大php-fpm进程数量。
pm.max_spare_servers = 16 

#php-fpm子进程能处理的最大请求数
pm.max_requests = 2000
pm.process_idle_timeout = 10s
request_terminate_timeout = 120

开始解决

以2G内存VPS为例

#dynamic和ondemand适合小内存,且控制相对而言更为灵活。此处选择dynamic模式
pm = dynamic

#static模式下生效,dynamic不生效
pm.max_children = 35 

#dynamic模式下开机的进程数量
pm.start_servers = 8 

#dynamic模式下最小php-fpm进程数量
pm.min_spare_servers = 8 

#dynamic模式下最大php-fpm进程数量
pm.max_spare_servers = 35

#设定最大请求数阈值自动释放
pm.max_requests = 5120

重启php-fpm

lnmp php-fpm restart

本文测试的服务器配置为4G运行内存,因此可能并不适合你的服务器。在接下来的时间里需要验证这一配置是否适合你的VPS,如不适合可再次进行调整。

Views: 17

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注