前言少叙,直奔主题,聊一聊php-fpm最大连接数和nginx限流。
php-fpm 如何设置最大连接数
php-fpm 设置最大连接数有三种方式:
pm = dynamic:子进程的数量是动态变化的,由以下几个参数决定:
pm.max_children = 5 # 最大子进程数
pm.start_servers = 2 # 启动时的进程数,默认情况下,等于 min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers = 1 # 最小空闲进程数,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers = 3 # 最大空闲进程数,如果空闲进程大于该值,则进行清理
pm = ondemand:进程在有需求时才产生(当请求时才启动,与 dynamic 相反,dynamic 是在服务启动时 pm.start_servers 个子进程就启动了)最大子进程数受 pm.max_children 限制,该模式下闲置进程在持续闲置了 pm.process_idle_timeout 秒后会被杀掉。
pm = static:子进程的数量是由 pm.max_children 指令来确定的,启动时即生成 pm.max_children 个子进程。
选择哪个模式
ondemand 模式,闲置时可以确保最小占用内存,但是每次创建子进程时都会消耗cpu,性能最差,只适合主机内存很小的场景,不推荐在生产环境使用该模式。