PHP-FPM的配置与优化讲解


Posted in PHP onMarch 15, 2019

PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,用于管理 PHP 进程池、接收和处理 Web 服务器的请求。PHP-FPM 会创建一个主进程,控制何时以及如何把 HTTP 请求转发给一个或多个子进程处理。

全局配置

emergency_restart_threshold = 60(建议值)

如果子进程在 emergency_restart_interval 设定的时间内收到该参数设定次数的 SIGSEGV 或者 SIGBUS退出信息号,则FPM会重新启动。

emergency_restart_interval = 1m

用于设定平滑重启的间隔时,单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。

这个两个设置的作用是,如果在指定的一段时间内指定的子进程失效了,让 PHP-FPM 重启。

这个两个设置默认是关闭的,建议开启,

进程池配置

PHP-FPM 中有一个 Pool Definitions 的区域,意为进程池,通常建议一个 PHP 应用使用一个进程池。

PHP-FPM 配置文件有默认名为 www 的配置内容。

user = 运行 PHP 的非 root 用户

子进程运行的用户。必须设置。

group = 运行 PHP 的非 root 用户所属的用户组

子进程运行的用户组。如果没有设置,则默认用户的组被使用。

listen = 127.0.0.1:9000 或者 /path/to/unix/socket

设置接受 FastCGI 请求的地址。

listen.allowed_clients = 127.0.0.1

设置允许连接到 FastCGI 的服务器 IP 地址。默认情况,这个字段是注释掉了,建议开启。

pm = 生产环境 static

设置进程管理器如何管理子进程。可用值:static,ondemand,dynamic。

  • static:子进程的数量是固定的(pm.max_children)。
  • ondemand:进程在有需求时才产生(当请求时,与 dynamic 相反,pm.start_servers 在服务启动时即启动。
  • dynamic:子进程的数量在下面配置的基础上动态设置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers。

pm.max_children =

设置 PHP-FPM 进程池中最多能有多少个进程。这个没有绝对正确值,要根据实际情况设置。

假设每个 PHP 进程使用 20-30M 内存,为整个 PHP-FPM 环境配置了 512 M 内存,那么可以设置为 17-25 中间值。

pm.start_servers =

设置启动时创建的子进程数目。仅在 pm 设置为 dynamic 时使用。

pm.min_spare_servers =

设置空闲服务进程的最低数目。仅在 pm 设置为 dynamic 时使用。必须设置。

pm.max_spare_servers =

设置空闲服务进程的最大数目。仅在 pm 设置为 dynamic 时使用。必须设置。

pm.max_requests = 1000

设置每个子进程重生之前服务的请求数。对于可能存在内存泄漏的第三方模块来说是非常有用的。如果设置为 '0' 则一直接受请求,默认值:0。

slowlog =

慢请求的记录日志。

注意 PHP-FPM 进程所属的用户和用户组必须具有相应文件的写权限。

request_slowlog_timeout = 5

当一个请求该设置的超时时间后,就会将对应的 PHP 调用堆栈信息完整写入到慢日志中。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
改进的IP计数器
Oct 09 PHP
MYSQL环境变量设置方法
Jan 15 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
php中http_build_query 的一个问题
Mar 25 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
laravel框架与其他框架的详细对比
Oct 23 PHP
php-fpm中max_children的配置
Mar 15 #PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 #PHP
php根据命令行参数生成配置文件详解
Mar 15 #PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 #PHP
PHP基于面向对象封装的分页类示例
Mar 15 #PHP
浅谈PHP无限极分类原理
Mar 14 #PHP
详解PHP队列的实现
Mar 14 #PHP
You might like
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
详解django中自定义标签和过滤器
2017/07/03 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
浅析python的Lambda表达式
2019/02/27 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
python使用minimax算法实现五子棋
2019/07/29 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
Why we need EJB
2016/10/20 面试题
会计大学生职业生涯规划书范文
2014/01/13 职场文书
效能监察建议书
2014/05/19 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
买卖合同协议书范本
2014/10/18 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
小学教师岗位职责
2015/04/02 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS