php_fcgi_max,php-fpm配置优化说明

关于fastcgi的2种连接方式:tcp和unix socket

tcp连接方式

1、使用TCP层网络协议通信

2、可以使用不同端口监听多个,如127.0.0.1:9001、127.0.0.1:9002...

3、上层可靠协议,保证正确性和完整性

4、方便做负载均衡、内核优化等

socket连接方式

1、fpm.sock是unix socket层协议通信

2、可以监听多个fpm.sock文件

3、高并发量时不稳定

4、适合并发量小的应用

5、sock文件放在/dev/shm目录下,使用的内存读写更快

关于php-fpm进程优化

pm = dynamic|static|ondemand 3种方式

pm.max_children:静态方式下开启的php-fpm进程数量。

pm.start_servers:动态方式下的起始php-fpm进程数量。

pm.min_spare_servers:动态方式下的最小php-fpm进程数量。

pm.max_spare_servers:动态方式下的最大php-fpm进程数量。

如果dm=static,只有pm.max_children这个参数生效,系统会开启设置数量的php-fpm进程。

如果dm=dynamic,pm.max_children参数失效,后面3个参数生效,系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。

一个php-fpm进程大约需要3M左右内存。

静态static方式速度更快,系统更稳定,但是要保证系统有足够的内存。

pm.max_requests = 1000

设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.

也就是当一个 PHP-CGI 进程处理的请求数累积到1000个后,自动重启该进程,防止第三方库造成的内存泄漏。

重启时可能会导致502错误,在高并发站点时有出现。

php-fpm慢日志

request_terminate_timeout = 30s #将执行时间太长的进程直接终止

request_slowlog_timeout = 2s #2秒

slowlog = log/$pool.log.slow #日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值