1

我在 Mac OS X 下使用 ApacheBench 对 Node.js 进行基准测试,并将其与 Apache 2 进行比较。我基本上有三个问题:

  1. 我对 Hello World 网页的基本测试结果如下: http://i.imgur.com/lgPMc.png Node.js 通过 Web 服务器以纯文本形式提供“Hello World”,而 Apache 2 提供纯文本文件其中也只包含“Hello World”。我对 8000 个请求进行了相同的测试,它显示在最后 1000 个请求期间响应时间的增加相同。到底是什么原因增加的?

  2. Mac OS X 上是否有等效的 linux dstat 来记录测试期间的内存和 CPU 使用情况?

  3. 是否有必须执行的一组基本测试来评估 Web 服务器的性能、吞吐量等?

4

2 回答 2

1

你说的阿帕奇是什么意思?阿帕切雄猫?阿帕奇 2?Apache Hadoop(好吧,显然不是那个)?您应该指定要进行基准测试的代码是什么,以及平台是什么。根据您编写的内容,您可能会导致很多问题,在基本的 Hello World 测试中,NodeJS 应该表现更好,因为执行 PHP 脚本需要访问磁盘,而大多数 NodeJS Hello World 测试是在内存中的,因为您只需编写response.send("Hello World");这与 PHP 基准测试完全不同。

最后增加的原因是您的计算机的限制。您的计算机无法维持数百个打开的连接。NodeJS 会一一响应所有连接,而 Apache 正在启动新线程,这将导致它们最后全部耗尽,因为会有很多上下文交换,所以最后会出现缓慢。

于 2012-05-22T16:08:10.697 回答
1
  1. 当您的测试查询服务器的速度超过它的响应速度时,就会出现一个问题,这会导致未解决的请求以越来越快的速度累积。它们的开销不成比例地影响响应时间。换句话说,您对您的服务器执行了 DDoS 攻击并发现了它的容量。

  2. 有unix 'top' 命令,不过有点繁琐,还有ps

  3. Quick google 表示确实存在用于基准测试网络服务器的标准,例如 SpecWeb、WebStone 和 SURGE

于 2012-05-22T23:38:10.523 回答