PHP-FPM的配置与优化讲解

 更新时间:2019年03月15日 15:15:21   作者:CODETC  
今天小编就为大家分享一篇关于PHP-FPM的配置与优化讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

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创建word文档的方法(平台无关)

    PHP创建word文档的方法(平台无关)

    这篇文章主要介绍了PHP创建word文档的方法,结合实例形式分析了与平台无关的生成word文档的方法,非常简单实用,需要的朋友可以参考下
    2016-03-03
  • PHP之COOKIE支持详解

    PHP之COOKIE支持详解

    建立商业站点或者功能比较完善的个人站点,常常需要记录访问者的信息,在PHP中提供了两种方便的手段:session和cookie功能.为了永久的保持用户信息,则cookie是最便捷的手段.在这里我将为大家详细的讲解cookie的功能及使用方法.
    2010-09-09
  • php mssql 时间格式问题

    php mssql 时间格式问题

    mssql默认以系统时间格式输出,你可以调整系统的时间格式来解决
    2009-01-01
  • PHP安全上传图片的方法

    PHP安全上传图片的方法

    这篇文章主要介绍了PHP安全上传图片的方法,可检测图片类型实现安全判断图片的功能,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • PHP命名空间简单用法示例

    PHP命名空间简单用法示例

    这篇文章主要介绍了PHP命名空间简单用法,结合具体实例形式分析了php命名空间的简单定义与使用相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • PHP 图片合成、仿微信群头像的方法示例

    PHP 图片合成、仿微信群头像的方法示例

    这篇文章主要介绍了PHP 图片合成、仿微信群头像的方法,涉及php针对图片的转换、生成等相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • 详解PHP使用OSS上传文件

    详解PHP使用OSS上传文件

    这篇文章主要介绍了PHP使用OSS上传文件,对OSS感兴趣的同学,可以参考并且实验一下
    2021-04-04
  • PHP将session信息存储到数据库的类实例

    PHP将session信息存储到数据库的类实例

    这篇文章主要介绍了PHP将session信息存储到数据库的类,实例分析了php封装的session信息存储到数据库的类,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • php array_map()函数实例用法

    php array_map()函数实例用法

    在本篇文章里小编给大家分享了一篇关于php array_map()函数实例用法,有兴趣的朋友们可以学习下。
    2021-03-03
  • PHP中的输出缓冲控制详解

    PHP中的输出缓冲控制详解

    这篇文章主要介绍了PHP中的输出缓冲控制的相关资料,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    2021-04-04

最新评论