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

如果我使用PHP,如何解决c10k问题?

发布时间:2020-12-13 13:21:44 所属栏目:PHP教程 来源:网络整理
导读:我正在决定应用程序的体系结构,其中“Http KeepAlive”和“long polling”将用于更快的响应. PHP有什么能解决Tornado为c10k做的问题吗? 我在考虑使用nginx PHP-FPM.但是,对于1000个活动连接,不会有1000个PHP-FPM进程吗? 然后我认为我们将遇到Apache与许多
我正在决定应用程序的体系结构,其中“Http KeepAlive”和“long polling”将用于更快的响应. PHP有什么能解决Tornado为c10k做的问题吗?

我在考虑使用nginx PHP-FPM.但是,对于1000个活动连接,不会有1000个PHP-FPM进程吗?

然后我认为我们将遇到Apache与许多常设连接相同的问题.不是吗?

编辑:据我所知,如果我只想要HTTP KeepAlive,nginx就足够了.但是,如果我还想要龙卷风支持长时间的民意调查呢? PHP中有类似的东西吗?

对于活动连接(如,加载和运行已定义的PHP脚本),是的,将有与活动连接一样多的PHP进程.但KeepAlive是关于被动连接的,Nginx非常擅长处理资源使用率非常低的被动KeepAlive连接 – 即使是成千上万的连接也是如此.

Apache的问题在于,在mod_php和mpm_prefork的通常配置中,每个连接都需要一个进程,即使它只是一个被动的KeepAlive.这意味着大多数Apache服务器实际上确实需要在内存中使用PHP进程,即使连接是被动的,但如果将PHP作为FastCGI运行则不是这种情况.如果你将PHP作为FastCGI运行并选择mpm_worker,它可以处理大量的被动连接,这将为每个连接创建一个更轻量级的线程,但它仍然不如Nginx.

(编辑:李大同)

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

    推荐文章
      热点阅读