centos7-php内存优化

2020/03 17 23:03

配置文件: /etc/php-fpm.d/www.conf

pm三种进程管理模式说明如下:

pm = static,始终保持一个固定数量的子进程,这个数由pm.max_children定义,这种方式很不灵活,也通常不是默认的。

pm = dynamic,启动时会产生固定数量的子进程(由pm.start_servers控制)可以理解成最小子进程数,而最大子进程数则由pm.max_children去控制,子进程数会在最大和最小数范围中变化。闲置的子进程数还可以由另2个配置控制,分别是pm.min_spare_servers和pm.max_spare_servers。如果闲置的子进程超出了pm.max_spare_servers,则会被杀掉。小于pm.min_spare_servers则会启动进程(注意,pm.max_spare_servers应小于pm.max_children)。

pm = ondemand,这种模式和pm = dynamic相反,把内存放在第一位,每个闲置进程在持续闲置了pm.process_idle_timeout秒后就会被杀掉,如果服务器长时间没有请求,就只会有一个php-fpm主进程。弊端是遇到高峰期或者如果pm.process_idle_timeout的值太短的话,容易出现504 Gateway Time-out错误,因此pm = dynamic和pm = ondemand谁更适合视实际情况而定。

static管理模式适合比较大内存的服务器,

dynamic则适合小内存的服务器,可以设置一个pm.min_spare_servers和pm.max_spare_servers合理范围,这样进程数会不断变动。

ondemand模式则更加适合微小内存,例如512MB或者256MB内存,以及对可用性要求不高的环境。

service php-fpm restart
echo 1 > /proc/sys/vm/drop_caches