低并发情况下产生Connection reset by peer的原因?
服务端提供了一个Restful api接口 本地启动服务端后 对其进行压测 很奇怪 并发数只要达到7个就玩不转了
ab -n 7 -c 7 -p post_data -T 'application/json;charset=UTF-8' 'http://127.0.0.1:8000/foobar'
Benchmarking 127.0.0.1 (be patient)...apr_socket_recv: Connection reset by peer (54)
同时在服务端日志中能看到有如下的异常信息
Exception happened during processing of request from ('127.0.0.1', 54779)
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 321, in process_request
self.finish_request(request, client_address)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 657, in __init__
self.finish()
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 716, in finish
self.wfile.close()
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 283, in close
self.flush()
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
wireshark中能看到很多RST
包
但是奇怪的是
部署在服务器上 压测调用远程服务 正常
登录服务器 在服务器本地进行压测 也正常
同样的代码 怎么部署在我本地 并发数就很低呢?一点头绪都没有
目前知道的不同就是 我本地的是OSX系统 服务器是CentOS系统
补充信息
正常情况下 显式kill一个进程的时候 是如下的一个效果
: Started ReviewExtractApplication in 2.241 seconds (JVM running for 2.618)
[1] 7988 killed java -jar target/review-extract-0.0.1-SNAPSHOT.jar
➜ review-extract git:(master) ✗
但是kill压测的这个服务的进程的时候 后面怎么跟了这么多呢 就好像执行了很多次ctrl+c
一样
[1] 6290 killed python server.py
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
➜ crfserver git:(crf) ✗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这种情况下,应该首先查查远程rest接口服务所在服务器的防火墙设置