服务器使用nginx+php-fpm配置。
最近发现php-fpm总是不释放内存,服务器内存1G,本身就小,过一段时间就占满了。
只好在占满前手动restart。
然后搜索了一下,发现php-fpm确实存在不释放内存的情况。
按照介绍重新设置了
- pm.start_servers:动态方式下的起始php-fpm进程数量 7
- pm.min_spare_servers:动态方式下的最小php-fpm进程数 4
- pm.max_spare_servers:动态方式下的最大php-fpm进程数量 10
最终命令:
pm.start_servers = min_spare_servers + (max_spare_servers - min_spare_servers) / 2
试用了一段时间,内存确实到90%左右就不增长缓慢了,但是数据堵塞了,只好继续restart。
在找到替换php-fpm之前,省事的方法还先设置一个定时任务,每天凌晨重启一下php-fpm访问。
先到win10自带的ubuntu上测试一番
第一个命令
service cron start : 提示no crontab for root – using an empty one
选择编辑器后 填写
* * * * * service nginx restart
每分钟重启一次nginx
默默等待一分钟,打开top,什么都没有发生,找日志,结果日志也没有。 搜索一番,始终找不到日志,顿时没了头绪。
换一个命令,再试一次。
* * * * * date >> /var/log/temp.txt
再次默默等待一分钟,切到var的log目录,居然出现了temp.txt。
再次搜索 定时启动php-fpm的命令。
最终命令:每天凌晨1点重启php-fpm服务
0 1 * * * systemctl restart php-fpm