首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我正在使用c10k,我如何解决问题?

如果我正在使用c10k,我如何解决问题?
EN

Stack Overflow用户
提问于 2011-05-27 11:43:03
回答 3查看 2.7K关注 0票数 8

我正在决定应用程序的体系结构,其中"Http KeepAlive“和”长轮询“将用于更快的响应。对于PHP,有什么东西可以解决龙卷风对c10k的问题吗?

我正在考虑使用nginx +PHP。但是,对于1000个活动连接,难道不是有1000个PHP进程吗?

那么,我认为我们将遇到与Apache在许多长期存在的关系中遇到的相同的问题。难到不是么?

编辑:--我知道,如果我只想要HTTP KeepAlive,那么nginx就足够了。但如果我也希望像龙卷风支持的那样进行长时间的投票呢?PHP中有类似的地方吗?

EN

回答 3

Stack Overflow用户

发布于 2011-05-27 11:46:16

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

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

票数 6
EN

Stack Overflow用户

发布于 2011-05-27 12:00:12

我对此的回答是,看看node.js,您可以指定一个100 K的活动连接,只要您有正确的硬件,Node.js就应该很好地处理这些连接。

节点在建立连接时不会产生新进程,套接字被放置在队列系统中,但它不是一个典型的队列系统,在这里处理一个连接,然后再处理下一个连接。

Node.js以处理许多连接而臭名昭著,那里的是基于保持活跃的传输风格,以及非常快速和强大的。

我使用了相当多,我必须说它非常容易使用,它是基于超级快速谷歌V8引擎,这是用于JavaScript在Chrome,这意味着它是非常快,你真的应该看看这个,你会发现,它是可行的,这类事情。

  • 关于使用Node.js的Plurk的博客文章
  • 处理100.000+打开连接的Plurk
票数 3
EN

Stack Overflow用户

发布于 2011-05-27 11:44:49

我不明白你什么意思。c10k与web服务器(apache、nginx等)无关.

如果你使用nginx,你不用担心

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6151760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档