Node.js NodeJS负载测试性能差(EADDRNOTAVAIL)
我从使用NodeJS的web应用程序开始,我的应用程序有一个问题我不知道如何解决 应用程序(我们使用expressjs)在我的本地机器上运行顺利,但是,当我们将其部署到我们的开发服务器进行负载测试时,我们会遇到如下错误Node.js NodeJS负载测试性能差(EADDRNOTAVAIL),node.js,http,express,Node.js,Http,Express,我从使用NodeJS的web应用程序开始,我的应用程序有一个问题我不知道如何解决 应用程序(我们使用expressjs)在我的本地机器上运行顺利,但是,当我们将其部署到我们的开发服务器进行负载测试时,我们会遇到如下错误 错误:连接EADDRNOTAVAIL 在errnoException(net.js:770:11) at connect(net.js:646:19) 在Socket.connect(net.js:711:9) 异步回调时(dns.js:68:16) 在Object.onans
错误:连接EADDRNOTAVAIL
在errnoException(net.js:770:11)
at connect(net.js:646:19)
在Socket.connect(net.js:711:9)
异步回调时(dns.js:68:16)
在Object.onanswer[作为oncomplete](dns.js:121:9)
获取XXXXXXX 500 21毫秒
我们的应用程序没有数据库,它处理RESTAPI后端。我们构建的每个页面都需要一个或多个对后端的调用。我知道我们必须使用缓存系统,但我们希望在没有它的情况下进行测试
我们的负载测试模拟用户导航。它从5个用户开始,每分钟添加一个用户。当我们有超过25个用户时,我们开始在日志中看到错误
起初,我认为这可能是一个关于太多开放连接的问题,但我们的系统管理员说情况并非如此
所以,如果有人能给我一个关于我应该去哪里看的提示,那就太好了
编辑:我们的开发机器有16个内核,我们正在使用集群模块运行我们的应用程序。对后端的调用由流行的Mikael请求模块处理。正如robertklep所建议的,这是一个在打开太多传出连接时耗尽虚拟端口的问题。请听他的详细解释 当我像文章所说的那样增加端口时,我仍然遇到了问题。通过更多的谷歌搜索,我发现了垃圾收集器和节点网络对象的问题。手动处理垃圾收集器似乎是一个好主意(当您需要许多传出连接时)。
检查此项。如果您确定这不是程序问题,您可以更改linux系统配置以解决此问题: [xxx@xxx~]$vim/etc/sysctl.conf net.ipv4.tcp_tw_重用=1 net.ipv4.tcp_tw_recycle=1
[xxx@xxx~]$sysctl-pREST后端是否有问题?但是,如果不知道如何调用后端,很难说。这似乎不是后端问题,因为我们已经对它进行了测试(使用JUnit),并且没有问题。我们使用Mikael请求模块调用后端。我被
GET XXX 500
消息触发,但我猜这是由您自己的应用程序引起的:)请检查EADDRNOTAVAIL
是否不是由端口耗尽引起的。