php-fpm进程数控制

一、名词解释

CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议。负责处理URL的请求,启动一个进程,将客户端发送的数据作为输入,有Web服务器收集程序的输出并加上合适的头部,再发送回客户端。

FastCGI是基于CGI的增强版本的协议,不同于创建新的进程来服务请求,使用持续的进程和创建的子进程来处理连串的进程,这些进程由FastCGI服务器管理,开销更小,效率更高。

PHP-FPM是PHP实现的FastCGI Process Manager(FastCGI进程管理器),用于替换PHP FastCGI的大部分功能,适用于高负载网站。支持的功能如:

  1. 平滑停止/启动的高级进程管理功能

  2. 慢日志记录脚本

  3. 动态/静态子进程产生

  4. 基于php.ini的配置文件

 

二、PHP-FPM配置

PHP-FPM配置文件为php-fpm.conf (例如:php-fpm容器中的/usr/local/etc/php-fpm.d/xlaravel.pool.conf)。下面所有的子进程均指php-fpm进程,可以在终端通过 ps aux |grep php 查看到。

  • 显示 php-fpm: pool www 的代表work子进程(实际处理请求)
  • 显示 php-fpm: process master 的代表master主进程(负责管理work子进程)
user = www-data
group = www-data
#启动进程的帐户和组

listen = 0.0.0.0:9000

pm = dynamic
#如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由以下参数决定:
pm.max_children = 20   #,子进程最大数
pm.start_servers = 45   #,启动时的进程数
pm.min_spare_servers = 30   #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程   
pm.max_spare_servers = 60   #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理


request_terminate_timeout = 300
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的’max_execution_time’因为某些特殊原因没有中止运行的脚本有用. 设置为 ’0′ 表示 ‘Off’.当经常出现502错误时可以尝试更改此选项。


catch_workers_output = yes
#重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.

 

php-fpm优化参数介绍

他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。

pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。

下面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进程数

 

ps auxw|head -1;ps auxw|sort -rn -k4|head -40
# 查看消耗内存最多的前40个进程


ps -fe |grep "php-fpm"|grep "pool"|wc -l
# 查看服务器上一共开了多少的 php-cgi 进程

 

posted on 2020-03-19 16:42  Karlkiller  阅读(1007)  评论(0编辑  收藏  举报

导航