性能测试Apache vs NodeJs

时间:2011-01-12 12:54:37

标签: performance apache node.js benchmarking

我目前正在测试Node.js和Apache之间的性能。

我想证明的是:

  • Apache速度较慢,因为它需要比使用单线程事件循环的Node.js更多的Thread-switch。
  • 与使用epoll的Node.js相比,Apache需要更多RAM / Connection。

这意味着,我想要测试的是:

  1. 请求/每CPU秒数
  2. 每个RAM连接
  3. 好的,这就是我想做的!但问题是如何做到这一点? 对于Request / second-Test,我可以使用Apache Benchmark(ab)(但是它甚至适用于Node.js?) 最大的问题是:如何测试Connections / RAM?

2 个答案:

答案 0 :(得分:17)

在做基准测试时,“我想证明”是一种非常错误的态度。你没有证明什么,你衡量实际表现。你可能会或者可能不会对结果感到惊讶,但你真的必须从“让我们看看这件事能做什么”开始。

显然,从我看过的所有基准测试来看,节点在原始速度方面首先出现但是使用了更多的内存然后是apache,所以有你的'证明'。

答案 1 :(得分:4)

Connections / second:我最近用一个简单的“hello world”node.js服务器做了这个测试,每个CPU核心得到~9,000个请求/秒。 (使用ab,btw。在2.5GHz,四核,Xeon linux机箱上进行测试)。

每个RAM的连接:你关心的是两个#。基线内存(无连接所需的内存)和每个连接的内存。我通过启动一个打开HTTP连接的简单服务器/客户端在我的Mac Pro上测试了这个。我运行'top'命令来监视内存使用情况。在零连接时,节点具有14MB RSIZE。然后,随着客户端运行并保持打开2000个并发连接,RSIZE增长到24MB。所以~5MB / 1000个连接。

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