繁体   English   中英

Apache / Server X转发到node.js性能

[英]Apache/Server X forwarding to node.js performance

我开始使用node.js构建一个轻量级,高需求的REST平台来构建一些内部应用程序。 一个问题与我的开发环境有关,并且Apache和node.js共存。 让它们共存没有问题,因为有很多关于如何通过Apache重定向请求到节点来“共享”端口80的帖子:

http://arguments.callee.info/2010/04/20/running-apache-and-node-js-together/ http://www.readwriteweb.com/hack/2010/12/how-to-run- Apache的和nodejs.php

和代理Apache的节点:

https://github.com/nodejitsu/node-http-proxy

然而,似乎需要的一个问题涉及代理时的性能“命中”,特别是在使用Apache代理节点时。 虽然我的生产环境将是一个纯粹的node.js解决方案,在端口80上进行侦听,理论上不会让Apache介入并处理初始I / O几乎击败了使用node.js的大部分性能优势,来自I / O透视? 如果这个盒子有数千个请求,长轮询等,那么Apache重定向不会产生很多线程,然后传递给单线程node.js?

正如我所说,节点的新手,所以只是试图让我的头脑绕过这个问题向前发展。

你有基本的想法。

让Apache处理请求首先使它成为链的一部分,如果它是链中最薄弱的环节,它可能会减慢你的应用程序。

在标准配置中,如果并发请求的数量很少,Apache并不慢,但处理的请求越多,Apache使用的RAM越多。 如果您正在使用某些持久连接,那么您可以轻松地达到某些限制。

Apache有不同的MPM(多处理模块)。 默认情况下,它使用mpm_prefork ,这已知是内存饥饿(每个连接一个线程)。
您可以切换到使用与node.js类似的模型来处理连接的mpm_worker更适合您尝试归档的任务类型。 (偶数连接处理,但它与其他模块[如mod_php ]有一些怪癖不再是线程安全的。)

一如既往,最好的解决方案是:尝试不同的事情,制定一些基准并采取最适合您的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM