进程的管理存在两种风格——static和dynamic
pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。
pm表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。
4个参数的意思分别为:
PM.MAX_CHILDREN:静态方式下开启的PHP-FPM进程数量。
PM.START_SERVERS:动态方式下的起始PHP-FPM进程数量。
PM.MIN_SPARE_SERVERS:动态方式下的最小PHP-FPM进程数量。
PM.MAX_SPARE_SERVERS:动态方式下的最大PHP-FPM进程数量。
如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为dynamic,那么pm.max_children参数失效,后面3个参数生效。系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。
编辑文件
/usr/local/php/etc/php-fpm.conf #我装的是军哥的lnmp
error_log = /app/logs/php-fpm.log #指定pid路径
log_level = error #开启日志,log级别为error
events.mechanism = epoll #使用epoll模式
listen.owner = www #使用php的用户
listen.group = www
pm.max_children = 52 #php-fpm最大的进程数,可以根据内存大小/40M得到
pm.start_servers = 5 #php初始启动子进程数量
pm.min_spare_servers = 5 #php最小空闲进程数量
pm.max_spare_servers = 25 #php最大空闲进程数量
pm.process_idle_timeout = 20s; #进程超时时间
pm.max_requests = 2048 #每个子进程退出之前可以进行的请求数
slowlog = /app/logs/$pool.log.slow #开启慢查询日志(执行程序时间长了可以查看到)
rlimit_files = 32768 #开启文件描述符数量
request_terminate_timeout = 100
request_slowlog_timeout = 10 #慢查询的超时时间,超时10秒记录
查看fpm的进程
ps -ef|grep fpm