php设置backlog,关于PHP-FPM的backlog的默认值

有高并发的业务,就必须要调整backlog。对于PHP而言,需要注意的有3方面:

1、操作系统 | sysctl

2、WEB前端 | 比如:Nginx

3、PHP后台 | 比如:php-fpm

操作系统以CentOS为例,可通过默认配置 /etc/sysctl.conf 文件进行调整。比如:

net.core.somaxconn = 1048576 # 默认为128

net.core.netdev_max_backlog = 1048576 # 默认为1000

net.ipv4.tcp_max_syn_backlog = 1048576 # 默认为1024

WEB前端以Nginx为例,可通过默认配置 /etc/nginx/nginx.conf 文件中的监听选项来调整。比如:

listen 80 backlog=8192; # 默认为511

PHP后台,以PHP-FPM为例,可以通过默认配置 /etc/php-fpm.d/www.conf 文件进行调整。比如:

listen.backlog = 8192 # 默认为-1(由系统决定)

大系统下,如上3处都应该进行调整。

值得注意的是:

PHP-FPM的配置文件中,关于listen.backlog选项的注释有些误导人:

; Set listen(2) backlog. A value of '-1' means unlimited.

; Default Value: -1

实际上如果使用默认值,很容易出现后端无法连接的问题,按老文档上的解释这个默认是200。建议此处不要留空,务必设置一个合适的值。

转自:http://my.oschina.net/kisops/blog/151079

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 目前php-fpm可用的参数有:max_children、start_servers、min_spare_servers、max_spare_servers、max_requests、process_idle_timeout、security.limit_extensions、rlimit_files、rlimit_core等。 ### 回答2: php-fpmPHP FastCGI 进程管理器,可以通过几个参数进行配置和控制。 1. `listen`:指定 php-fpm 监听的地址和端口号。可以设置为本地或远程 IP 地址,以及对应的端口号,默认为本地的 127.0.0.1:9000。 2. `pm`:指定进程管理的方式。可以选择 `static`、`dynamic` 或 `ondemand`。`static` 表示固定数量的进程,通过 `pm.max_children` 参数设置;`dynamic` 表示动态进程管理,通过 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers` 和 `pm.max_spare_servers` 参数进行控制;`ondemand` 表示按需创建进程,通过 `pm.max_children` 和 `pm.process_idle_timeout` 进行管理。 3. `pm.max_children`:指定进程池中的最大子进程数。只在 `pm` 设置为 `static` 或 `ondemand` 时有效。 4. `pm.start_servers`:指定启动时的静态子进程数。只在 `pm` 设置为 `dynamic` 时有效。 5. `pm.min_spare_servers`:指定最小空闲子进程数。只在 `pm` 设置为 `dynamic` 时有效。 6. `pm.max_spare_servers`:指定最大空闲子进程数。只在 `pm` 设置为 `dynamic` 时有效。 7. `pm.process_idle_timeout`:指定空闲进程的超时时间。只在 `pm` 设置为 `ondemand` 时有效。 8. `listen.backlog`:指定待处理的连接队列长度,超过该值的连接将被拒绝。默认为 511。 9. `request_terminate_timeout`:指定请求终止的超时时间。如果一个请求超过该时间还未完成,则会被强制终止。 10. `rlimit_files`:指定进程打开的文件描述符限制。默认值为系统的软限制值。 除了以上参数,还有一些其他可用的参数可以进一步配置 php-fpm 的性能、日志和安全等方面的属性。以上只是一些常用的参数,具体可以参考官方文档以获得更详细的了解。 ### 回答3: php-fpm 是一种用于管理 PHP FastCGI 进程的程序。它具有很多可用参数,以下是其中一些常用的参数: 1. `listen`:指定 PHP-FPM 监听的地址和端口,可以是本地套接字或 IP 地址。 2. `user` 和 `group`:设置 PHP-FPM 的运行用户和用户组,用于控制进程所属的权限。 3. `pm`:进程管理方式,有多个可选值。`static` 表示静态的进程管理方式,`dynamic` 表示动态的进程管理方式,`ondemand` 表示按需的进程管理方式。 4. `pm.max_children`:当采用动态进程管理方式时,设置最大可创建的子进程数量。 5. `pm.start_servers`:当采用动态进程管理方式时,设置初始启动的子进程数。 6. `pm.min_spare_servers`:当采用动态进程管理方式时,设置最小空闲子进程数。 7. `pm.max_spare_servers`:当采用动态进程管理方式时,设置最大空闲子进程数。 8. `pm.max_requests`:设置每个子进程处理的最大请求数,达到此值后将会被重启。 9. `request_terminate_timeout`:设置每个请求的最大执行时间,超过此时间将会被强制终止。 10. `chroot`:将 PHP-FPM 进程的根目录改变为指定的目录,增强安全性。 11. `php_admin_value` 和 `php_admin_flag`:设置 PHP 配置参数。 除了上述常用参数外,还有很多其他参数可以用于配置和优化 PHP-FPM 的运行。这些参数包括限制进程的资源使用、限制请求的内存使用、调整进程的优先级等等。根据实际需求,可以灵活地配置这些参数来满足服务器的性能和安全需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值