php-fpm占用内存太大怎么办
php-fpm占用内存太大的解决方法:将pm.min_spare_servers和pm.max_spare_servers设置在合理范围,保证进程数会不断变动即可。
本文操作环境:windows10系统、PHP7、thinkpad t480电脑。
解决php-fpm占用内存过大问题的方法如下所示:
方法一:调整管理模式
static管理模式适合比较大内存的服务器,而dynamic则适合小内存的服务器,你可以设置一个pm.min_spare_servers和pm.max_spare_servers合理范围,这样进程数会不断变动。ondemand模式则更加适合微小内存,例如512MB或者256MB内存,以及对可用性要求不高的环境。
方法二:减少php-fpm进程数
如果你的VPS主机的内存被占用耗尽,可以检查一下你的php-fpm进程数,按照php-fpm进程数=内存/2/30来计算,1GB内存适合的php-fpm进程数为10-20之间,具体还得根据你的PHP加载的附加组件有关系。
php-fpm配置示例
这里以1GB内存的VPS配置php-fpm为演示,实际操作来看设置数值还得根据服务器本身的性能、PHP等综合考虑。
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进程数量。
推荐学习:php培训