资讯专栏INFORMATION COLUMN

PHP-FPM 配置 & 优化

lookSomeone / 531人阅读

摘要:是用于管理进程池的软件,用于接收和处理服务器的请求。这个两个设置默认是关闭的,建议开启,进程池配置中有一个的区域,意为进程池,通常建议一个应用使用一个进程池。配置文件有默认名为的配置内容。总结没有固定的配置,要根据实际情况设置。

PHP-FPM 是用于管理 PHP 进程池的软件,用于接收和处理 Web 服务器的请求。
PHP-FPM 会创建一个主进程,控制何时以及如何把 HTTP 请求转发给一个或多个子进程处理。
PHP-FPM 的配置很重要,可以参考 PHP手册相应的内容
1

全局配置

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-FPM 没有固定的配置,要根据实际情况设置。

参考:
1、php-fpm的max_chindren的一些误区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21300.html

相关文章

  • CentOS7下PHP&Nginx&Mysql编译安装及sytemd配置

    摘要:闲话少叙,直接开始安装依赖复制以下内容,回车直接安装编译,,所需的依赖创建用户和组注意此处的组创建和用户创建在后面编译安装中需要,当然可以根据个人习惯自己命名想要的组名和用户名编译安装根据个人习惯去 闲话少叙,直接开始 yum安装依赖 复制以下内容,回车直接安装编译php,nginx,mysql所需的依赖 shyum install -y kenel-devel gcc gcc...

    jubincn 评论0 收藏0
  • CentOS7下PHP&Nginx&Mysql编译安装及sytemd配置

    摘要:闲话少叙,直接开始安装依赖复制以下内容,回车直接安装编译,,所需的依赖创建用户和组注意此处的组创建和用户创建在后面编译安装中需要,当然可以根据个人习惯自己命名想要的组名和用户名编译安装根据个人习惯去 闲话少叙,直接开始 yum安装依赖 复制以下内容,回车直接安装编译php,nginx,mysql所需的依赖 shyum install -y kenel-devel gcc gcc...

    cloud 评论0 收藏0
  • strace & ltrace & phpstrace

    摘要:是环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息。追踪程序运行时的整个生命周期,输出每一个系统调用的名字,参数,返回值和执行消耗的时间等。设置打印的字符串最大长度。使用某个用户或组来运行命令。 strace strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息。追踪程序运行时的整个生命周期,输出每...

    huayeluoliuhen 评论0 收藏0
  • PHPFPM优化

    摘要:在有限的资源下,通过调整相关参数,提升性能,是非常廉价的措施参数优化将配置文件中的参数修改为默认是,动态的这个参数用来控制进程创建是动态创建还是在启动时就创建好修改为的理由是,在启动时创建,能节省动态创建进程的开销和相关联的参数有最 在有限的资源下,通过调整相关参数,提升性能,是非常廉价的措施 参数优化 将php-fpm配置文件中的参数 pm修改为pm = static 默认是d...

    fancyLuo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<