网站搭建好以后,我的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,如不适合可再次进行调整。