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 的配置内容 。
子进程运行的用户 。必须设置 。
子进程运行的用户组 。如果没有设置,则默认用户的组被使用 。
设置接受 FastCGI 请求的地址 。
设置允许连接到 FastCGI 的服务器 IP 地址 。默认情况,这个字段是注释掉了,建议开启 。
设置进程管理器如何管理子进程 。可用值:static,ondemand,dynamic 。
设置 PHP-FPM 进程池中最多能有多少个进程 。这个没有绝对正确值,要根据实际情况设置 。 假设每个 PHP 进程使用 20-30M 内存,为整个 PHP-FPM 环境配置了 512 M 内存,那么可以设置为 17-25 中间值 。
设置启动时创建的子进程数目 。仅在 pm 设置为 dynamic 时使用 。
设置空闲服务进程的最低数目 。仅在 pm 设置为 dynamic 时使用 。必须设置 。
设置空闲服务进程的最大数目 。仅在 pm 设置为 dynamic 时使用 。必须设置 。
设置每个子进程重生之前服务的请求数 。对于可能存在内存泄漏的第三方模块来说是非常有用的 。如果设置为 '0' 则一直接受请求,默认值:0 。
慢请求的记录日志 。 注意 PHP-FPM 进程所属的用户和用户组必须具有相应文件的写权限 。
当一个请求该设置的超时时间后,就会将对应的 PHP 调用堆栈信息完整写入到慢日志中 。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持 。如果你想了解更多相关内容请查看下面相关链接 您可能感兴趣的文章:
|