2011-01-12 59 views
5

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

我想证明的是:

  • Apache是​​慢,因为它需要更多的线程切换比的Node.js它采用单线程事件循环。
  • 与使用epoll的Node.js相比,Apache需要更多的RAM/Connection。

这意味着,我要测试的是:每个CPU

  1. 请求/秒每秒钟RAM

  • 连接好了,这就是我想做的事!但问题是我该怎么做? 对于Request/Second-Test我可以使用Apache Benchmark(ab)(但是它甚至适用于Node.js?) 最大的问题是:如何测试Connections/RAM?

  • 回答

    4

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

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

    当你得到#的节点和Apache你可以发布他们吗?我也很好奇。

    +0

    随着ab我得到约6300 R/S与一个2.5ghz双核K8 AMD并发100。关于Connections/Ram,我使用了tautologics脚本 - > github.com/tautologistics/node_loadtest,其中我使用了大约250MB的荒谬61000连接。我需要知道的是用apache测试最大并发/ Ram的方法。有什么建议么???哦,你可以发布你的脚本,你如何实现5MB/1000的连接? – user572715 2011-01-14 08:12:17

    17

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

    显然,顺便说一句,从我看到的所有基准测试中,节点首先根据原始速度出现,但使用更多内存,然后使用apache,因此出现了'证明'。