PHP-FPM配置的优化

php-fpm默认安装后以下三个参数都是关闭的:

#表示在 emergency_restart_interval 所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果

#超过 emergency_restart_threshold 个php-fpm就会优雅重启。这两个选项一般保持默认值。

emergency_restart_threshold = 10
emergency_restart_interval = 1m

#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.

process_control_timeout = 0

出于优化的目的,我们把它们打开

emergency_restart_threshold = 10
emergency_restart_interval = 1m
process_control_timeout = 10s

有以下优点

在1分钟内,出现 SIGSEGV 或者 SIGBUS 错误的 PHP-CGI 进程数超到10个时,PHP-FPM 就会优雅的自动重启。

SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。通常是未对齐的数据访问所致。
SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。

标签:PHP 发布于:2019-10-18 15:24:56