我正在Mac OS X下用ApacheBench对Node.js进行基准测试,并将其与Apache 2进行比较。我基本上有三个问题:
-
我对Hello World网页的基本测试得出以下结果:https://i.stack.imgur.com/sQNDL.pngNode.js通过Web服务器以纯文本形式提供"Hello World",Apache 2提供纯文本文件,该文件也仅包含"Hello World"。我对 8000 个请求进行了相同的测试,它显示了最近 1000 个请求中响应时间的相同增加。最后增加的原因是什么?
-
Mac OS X 上的 Linux dstat 是否有等效项来记录测试期间的内存和 CPU 使用情况?
-
是否有一组必须执行的基本测试才能评估 Web 服务器的性能、吞吐量等?
你说的 Apache 是什么意思?阿帕斯雄猫?阿帕奇2?Apache Hadoop(好吧,显然不是那个(?您应该指定要基准测试的代码是什么,以及平台是什么。根据你写的内容,你可能会引起很多问题,在基本的 Hello World 测试中,NodeJS 应该表现得更好,因为执行 PHP 脚本需要磁盘访问,而大多数 NodeJS Hello World 测试都在内存中,因为你只是编写response.send("Hello World");
这与 PHP 基准测试不同。
最后增加的原因是您的计算机的限制。您的计算机无法维护数百个打开的连接。NodeJS 会一个接一个地响应所有连接,而 Apache 正在启动新线程,这将导致它们在最后全部耗尽,因为会有很多上下文交换,所以最后会出现缓慢。
-
当测试查询服务器的速度快于其响应速度时,这会导致未解析的请求以越来越快的速度累积。它们的开销不成比例地影响响应时间。换句话说,您对服务器进行了DDoS攻击并发现了它的容量。
-
有 unix 'top' 命令,但它有点繁琐,还有 ps
-
Quick Google表示,基准测试Web服务器的标准确实存在,例如SpecWeb,WebStone和SURGE