Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js apr_socket_recv:对等(104)节点Ubuntu 14.10 x64 8GB RAM 4核心(VPS)重置连接_Node.js_Sockets_Gps_Benchmarking - Fatal编程技术网

Node.js apr_socket_recv:对等(104)节点Ubuntu 14.10 x64 8GB RAM 4核心(VPS)重置连接

Node.js apr_socket_recv:对等(104)节点Ubuntu 14.10 x64 8GB RAM 4核心(VPS)重置连接,node.js,sockets,gps,benchmarking,Node.js,Sockets,Gps,Benchmarking,我正在node.js中处理一个项目。该项目是关于位置(GPS)跟踪。我的项目的最终目标是为100万个并发请求提供服务器。我所做的是 在node.js中创建了一个服务器,该服务器在端口8000上列出 带有谷歌地图的html文档,用于定位用户位置/GPS位置 服务器和html文档之间的单一套接字连接,用于传递位置信息 从客户端设备获取用户位置的API(可以是移动应用程序) 一旦服务器通过上面提到的API接收到用户位置,它就会通过套接字将该信息发送给客户端(HTML文档) 它工作得很好 问题 我正在使

我正在node.js中处理一个项目。该项目是关于位置(GPS)跟踪。我的项目的最终目标是为100万个并发请求提供服务器。我所做的是

在node.js中创建了一个服务器,该服务器在端口8000上列出
带有谷歌地图的html文档,用于定位用户位置/GPS位置
服务器和html文档之间的单一套接字连接,用于传递位置信息
从客户端设备获取用户位置的API(可以是移动应用程序)
一旦服务器通过上面提到的API接收到用户位置,它就会通过套接字将该信息发送给客户端(HTML文档)

它工作得很好

问题
我正在使用apachebench对我的服务器进行负载测试。当我增加并发性时,基准测试经常会因错误而中断

apr_socket_recv: Connection reset by peer (104)  
我怎样才能解决这个问题,这个问题的真正原因是什么

注意:如果我在本地windows计算机上运行相同的服务器,它将成功地服务20K请求

我改变了主意

ulimit -n 9999999
软文件和硬文件的打开限制为1000000

两者都不能解决我的问题。
请帮我把这个问题弄清楚。如何将并发性增加到1M。是否可以进行更多的硬件/网络调整

编辑:

我在服务器上使用的worker数量相当于我的情况下的Core/CPU(即)4个worker的数量
服务器终端中使用htop命令的CPU使用率45%
内存使用量约为4GB/8GB&未使用交换空间
我用来加载服务器的ab命令无效

ab -n 20000 -c 20000 "http://IP_ADDRESS:8000/API_INFO"

为什么要否决投票?有什么问题吗?您使用的是节点群集吗?你在用最后一个ab吗?你的回复代码是什么?当它发生时,您的资源使用率是多少%?你在执行什么ab命令?请提供更多信息info@nada. 很抱歉给您带来不便。我已经用您要求的信息更新了问题。请尝试使用-r like
ab-r-n100000-c1000“http://IP_ADDRESS:8000/API_INFO“
或使用-k感谢您的建议。在命令中添加
-r-k
后,我现在没有收到错误。但每个基准测试100-300个请求都失败了。为什么会这样?