我一直使用 apache 基准测试来大致了解我的服务器每秒可以处理多少个请求。我读到它很好,而且似乎运作良好。
输入完全基于事件的 node.js,因此它永远不会阻塞。如果我在一个简单的 hello world 服务器上运行 apache 基准测试,它每秒可以处理 2500 个左右的请求。
但是,如果我在 hello world 函数中设置超时,使其在 2 秒后响应,则 apache 基准测试报告的吞吐量显着降低:大约 50/s。我正在与 ab 运行 100 个并发连接。如果我增加并发性,它就会上升。这是有道理的,因为 apache 基准测试基本上是分批发送 100 个请求,每 2 秒返回一次。100 个请求/2 秒 = 50 个请求/秒
如果我将并发增加到大约 400 或 500,它就会开始崩溃。我认为我没有达到 node.js 的限制,我认为我在我的操作系统中打开文件描述符或套接字或其他东西的数量遇到了障碍。
有什么方法可以很好地猜测我的服务器可以处理多少个请求?我想确保测试计算机不是导致问题的计算机。