我花了一段时间使用http库设置我自己的服务器,当我使用jmeter对其进行负载测试时,我注意到我没有对其进行设置以利用keep-alive。
我花了数小时试图弄清楚这一点-也许我在其他地方遇到了问题-因此,用非常简单的话来说,应该如何保持生命?
我已经设置了相关的标题,并尝试了以下在线找到的方法:
server.on('connection', (socket: Socket) => {
socket.setTimeout(30 * 1000);
socket.setKeepAlive(true);
})
和
handleRequest(request: http.IncomingMessage, response: http.ServerResponse) : void {
request.socket.setKeepAlive(true);
request.socket.write('hello, world');
request.socket.end();
}
这些只是导致jmeter崩溃,因为它的标头使其认为连接在未连接时仍保持活动状态。我正在执行的任何操作似乎都无法使连接保持打开状态。请指教:)
答案 0 :(得分:1)
我似乎一无所获。我原来的实现似乎没有任何问题;但是在ApacheBench中运行测试时遇到了临时端口限制问题。丹尼尔·门德尔(Daniel Mendel)的博客文章解释了该问题:here