ondemand,static,dynamic(内存优先、静态池、服务优先)php
php-fpm启动的时候不会启动worker进程,按需启动worker,有连接进来后,才会启动服务器
listen = 127.0.0.1:9001 pm = ondemand pm.process_idle_timeout = 60 pm.max_children = 10
链接到来时(只有连接,不没有数据也会建立,telnet也会建立),建立新worker进程,worker进程数的建立收max_children设置限制,也受限于全局的process.max设置(三种模式都受限此,下文中有全局配置项讲解),若是空闲时间超过了process_idle_timeout的设置就会销毁worker进程并发
会初始化建立一部分worker,在运行过程当中,动态调整worker数量,最大worker数受pm.max_children和process.maxphp-fpm
listen = 127.0.0.1:9001 pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 6
启动固定大小数量的worker,也有1s的定时器,用于统计进程的一些状态信息,例如空闲worker个数,活动worker个数性能
pm.max_children = 10 #必须配置这个参数,并且只有这个参数有效
动态创建进程个数spa
静态进程个数日志
# 全局设置 process.max = 10 #最大进程数 # www.conf user = nobody # 进程发起的用户和用户组,nobody为任意用户,user必须设置,group不用 group = www listen = [::]:9000 pm = dynamic # 进程池管理器如何控制子进程数量,static,静态,固定值 dynamic 动态 ondemand pm.max_children = 16 # 同一时刻可以存活的最大子进程数 pm.start_servers = 4 # 启动时启动的子进程数 pm.min_spare_servers = 2 # 处于空闲 idle状态的最小进程,若是空闲进程数量小于这个值,那么相应的子进程会被建立, 能够有效的减小建立的进程数,请求处理不过来,才会按部就班的建立 pm.max_spare_servers = 16 # 最大空想进程数,空闲子进程数超过这个值,那么相应的子进程会被杀掉 catch_workers_output = yes # worker进程的标准输出和错误输出会重定向到错误日志中,没有设置会输出到/dev/null ;slowlog = xxx # 默认关闭,慢日志路径 ;request_slowlog_timeout = 0 # 脚本执行超过多久就记录到日志文件