我正在决定应用程序的体系结构,其中"Http KeepAlive“和”长轮询“将用于更快的响应。对于PHP,有什么东西可以解决龙卷风对c10k的问题吗?
我正在考虑使用nginx +PHP。但是,对于1000个活动连接,难道不是有1000个PHP进程吗?
那么,我认为我们将遇到与Apache在许多长期存在的关系中遇到的相同的问题。难到不是么?
编辑:--我知道,如果我只想要HTTP KeepAlive,那么nginx就足够了。但如果我也希望像龙卷风支持的那样进行长时间的投票呢?PHP中有类似的地方吗?
发布于 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。
发布于 2011-05-27 12:00:12
我对此的回答是,看看node.js,您可以指定一个100 K的活动连接,只要您有正确的硬件,Node.js就应该很好地处理这些连接。
节点在建立连接时不会产生新进程,套接字被放置在队列系统中,但它不是一个典型的队列系统,在这里处理一个连接,然后再处理下一个连接。
Node.js以处理许多连接而臭名昭著,那里的是基于保持活跃的传输风格,以及非常快速和强大的。
我使用了相当多,我必须说它非常容易使用,它是基于超级快速谷歌V8引擎,这是用于JavaScript在Chrome,这意味着它是非常快,你真的应该看看这个,你会发现,它是可行的,这类事情。
发布于 2011-05-27 11:44:49
我不明白你什么意思。c10k与web服务器(apache、nginx等)无关.
如果你使用nginx,你不用担心
https://stackoverflow.com/questions/6151760
复制相似问题