您的位置:

phpfpmmaxchildren的简单介绍

本文目录一览:

远程服务器返回错误:(502)错误的网关 是什么原因、?

502错误原因分析:

1、这类错误常见于Nginx+PHP的Web架构,Nginx将请求提交给网关PHP-FPM执行,但是由于某些原因请求没有执行完毕导致PHP-FPM进程终止执行。说到此,这个问题就很明了了,与网关服务如PHP-FPM的配置有关了。

2、php-fpm.conf配置文件中有两个参数就需要你考虑到,分别是max_children和request_terminate_timeout。

3、max_children最大子进程数,在高并发请求下,达到php-fpm最大响应数,后续的请求就会出现502错误的。可以通过netstat命令来查看当前连接数。

4、request_terminate_timeout设置单个请求的超时终止时间。还应该注意到php.ini中的max_execution_time参数。当请求终止时,也会出现502错误的。

5、当积累了大量的php请求,你重启php-fpm释放资源,但一两分钟不到,502又再次呈现, 这时还应该考虑到数据库,查看下数据库进程是否有大量的locked进程,数据库死锁导致超时,前端终止了继续请求,但是SQL语句还在等待释放锁,这时就要重启数据库服务了或kill掉死锁SQL进程了。

6、所以在调整max_children和request_terminate_timeout、max_execution_time也需要考虑到服务器资源使用情况及应用代码sql执行效率情况,需要综合衡量。502 Bad Gateway:服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 亦说Web服务器用作网关或代理服务器时收到了无效响应。

远程服务器是成对设置的。 若要设置一对远程服务器,请将这两台服务器配置为彼此将对方识别为远程服务器。

大多数情况下,不需要为远程服务器设置配置选项。 SQL Server 组将在本地计算机和远程计算机上设置默认值以允许远程服务器连接。

为了能够进行远程访问,必须在本地和远程计算机上将 remote access 配置选项设置为 1。 (这是默认设置。)remote access 控制远程服务器的登录。 可以通过使用 Transact-SQL sp_configure 存储过程或 SQL Server Management Studio 重置此配置选项。 若要在 SQL Server Management Studio中设置选项,请在 “服务器属性连接” 页上,使用 “允许远程连接到此服务器”。 若要访问“服务器属性连接”页,请在对象资源管理器中右键单击服务器名称,再单击“属性”。 在 “服务器属性” 页上,单击 “连接” 页。

在本地服务器中,您可以禁用远程服务器配置,以防止远程服务器中的用户对与其配对的本地服务器进行访问。

512m内存的vps的php-fpm.conf的max-children开多少比较合理??

这个视服务器系统配置而定,生产环境下,你512M内存,设置在15-20个左右吧。

按每个进程20M计算的话,15-20个大约在300-400M以内。加上你mysql以及系统进程所占用的内存,这个值是相对合理的。不然很可能内存不足报502错误。

阿里云主机到哪里去修改max_children , request_terminate_timeout这些文件

如果你是安装了php的话,找到php-fpm.conf这个文件,有两个至关重要的参数:一个是”max_children”,另一个是”request_terminate_timeout”,进行优化修改即可。

502 bad gateway怎么办

502 Bad Gateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。

第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。

第二种原因:在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。

第四种原因:php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300。

第五种原因:磁盘空间不足,如mysql日志占用大量空间。

第六种原因:查看php-cgi进程是否在运行。

另外的解决办法:

Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。

php-fpm.conf有两个至关重要的参数,一个是max_children,另一个是request_terminate_timeout,但是这个值不是通用的,而是需要自己计算的。

在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。

计算的方式如下:如果服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的话可以直接将 request_terminate_timeout设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。如果做不到这一点,也就 是说PHP-CGI可能出现某个BUG,或者宽带不够充足或者其他的原因导致PHP-CGI假死那么就建议给 request_terminate_timeout赋一个值,这个值可以根据服务器的性能进行设定。一般来说性能越好可以设置越高,20分钟-30分 钟都可以。

而max_children这个值又是怎么计算出来的呢?这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。 设置max_children也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右。

按照官方的答案,排查了相关的可能,并结合了网友的答案,得出了下面的解决办法:

1、查看php fastcgi的进程数(max_children值)代码:netstat -anpo | grep “php-cgi” | wc -l

5(假如显示5)

2、查看当前进程,代码:top观察fastcgi进程数,假如使用的进程数等于或高于5个,说明需要增加(根据机器实际状况而定)

3、调整/usr/local/php/etc/php-fpm.conf 的相关设置

value name=”max_children”10/value

value name=”request_terminate_timeout”60s/value

max_children最多10个进程,按照每个进程20MB内存,最多200MB。

request_terminate_timeout执行的时间为60秒,也就是1分钟。

php-fpm的pm.max children数量和并发能力有直接联系吗

pm.max_children 表示 php-fpm 能启动的子进程的最大数量。因为 php-fpm 是多进程单线程同步模式,即一个子进程同时最多处理一个请求,所以子进程数等于最大并发数。