低并发情况下产生Connection reset by peer的原因?

发布于 2022-09-05 21:43:25 字数 3234 浏览 14 评论 0

服务端提供了一个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

clipboard.png

但是奇怪的是

  • 部署在服务器上 压测调用远程服务 正常

  • 登录服务器 在服务器本地进行压测 也正常

同样的代码 怎么部署在我本地 并发数就很低呢?一点头绪都没有
目前知道的不同就是 我本地的是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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你不是我要的菜∠ 2022-09-12 21:43:25

这种情况下,应该首先查查远程rest接口服务所在服务器的防火墙设置

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文