加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

PHP中的长时间运行脚本导致NGINX服务器变得非常繁忙

发布时间:2020-12-13 20:57:32 所属栏目:Nginx 来源:网络整理
导读:我会尝试对此进行非常具体的介绍-这并非易事,因此请尝试遵循. 我们有一个脚本可以在NGINX上与PHP一起运行-PHP-fpm FastCGI. 该脚本从试图访问它的用户那里获取信息,并实时运行某种算法.它不能是在后台运行的计划进程. 有时,页面加载甚至需要5到12秒的时间-没

我会尝试对此进行非常具体的介绍-这并非易事,因此请尝试遵循.

我们有一个脚本可以在NGINX上与PHP一起运行-PHP-fpm FastCGI.
该脚本从试图访问它的用户那里获取信息,并实时运行某种算法.它不能是在后台运行的计划进程.
有时,页面加载甚至需要5到12秒的时间-没关系.
通常,我们从用户那里收集数据,并向第三方服务器发出多个传出请求,然后收集数据,对其进行分析并为用户返回响应.

问题是,
有许多用户正在运行此脚本,服务器变得非常繁忙-因为他们都是服务器上的活动连接,正在等待响应.
我们有2台服务器在1个负载均衡器下运行,这还不够.
有时,服务器一次最多具有1,500个活动连接.您可以想象这些服务器在该时间范围内如何响应.

我正在寻找解决方案.
我们可以向LB添加越来越多的服务器,但是这是唯一的解决方案,这听起来很荒谬.
我们运行了该脚本并对其进行了最大程度的优化,我可以向您保证-
对于该脚本的长时间运行,没有真正的解决方案,因为它依赖于第三方服务器,这些服务器需要一些时间才能对实时流量做出响应.

您有没有想过的解决方案,可以按原样保留此脚本-
但是如何以某种方式降低这些活动连接对整个服务器运行的影响?
有时,他们只是停下来回应.

非常感谢您的阅读!

最佳答案
3个月大的问题,我知道,但是我不由自主地认为:

>如果您确定对第三方服务器的所有请求的网络工作总和加上PHP脚本中响应的相应处理远低于硬件的限制.
>然后,您的PHP脚本可能效率低下地忙循环,直到所有响应都从第三方服务器返回为止

如果我正在处理这样的问题,我会做:

>停止使用自定义的外部C curl东西,因为PHP脚本正忙于等待它.
> Google并阅读有关PHP的curl-multi实现的非忙循环用法

希望这是有道理的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读