Apache与NodeJs的性能测试

5
我目前正在测试Node.js和Apache之间的性能差异。
我想要证明的是:
1. Apache比Node.js慢,因为它需要更多的线程切换,而Node.js使用单线程事件循环。 2. 与使用epoll的Node.js相比,Apache需要更多的RAM/连接。
这意味着,我想要测试的内容是:
1. 每个CPU的请求数/秒 2. 每块RAM的连接数
那么问题来了,如何进行测试呢?
对于每秒请求数测试,我可以使用Apache基准(ab)(但是ab是否适用于Node.js?)
最大的问题是:如何测试连接/RAM呢?
2个回答

18

在进行基准测试时,“我想证明”这种态度是非常错误的。你并不是在证明什么,而是在测量实际性能。你可能会对结果感到惊讶,也可能不会,但你真的必须从“让我们看看这个东西能做什么”开始。

显然,从我看到的所有基准测试中,Node在原始速度方面排名第一,但使用的内存比Apache多,所以你的“证明”就无从谈起了。


4

每秒连接数:最近我用一个简单的“hello world”node.js服务器进行了测试,每个CPU核心可以得到大约9,000个请求/秒。 (顺便说一下,使用ab进行测试。在2.5GHz,四核Xeon linux盒子上进行测试)。

每RAM连接数:这里有两个数字是您关心的。没有连接时的基准内存(所需内存),以及每个连接的内存。我在我的Mac Pro上通过启动保持HTTP连接打开的简单服务器/客户端来测试它。我运行“top”命令来观察内存使用情况。在零连接下,节点具有14MB RSIZE。然后,随着客户端运行并保持2000个并发连接打开,RSIZE增长到24MB。所以大约为5MB/1000个连接。

当你获得Node和Apache的数字时,可以在这里发布吗? 我也很好奇。


使用2.5ghz双核K8 AMD,在并发数为100的情况下,ab测试结果为约6300 R/S。对于连接/内存方面,我使用了tautologics脚本->github.com/tautologistics/node_loadtest,在大约250MB的情况下达到了荒谬的61000个连接。现在我需要一种方法来测试apache的最大并发量/内存。有什么建议吗?另外,您能否发布您使用的脚本,以便实现5MB / 1000连接的效果? - user572715

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接